
    *j                         d dl Z d dlZd dlZd dlZd dlmZ  ed          Z ed          Z ed          Zedz  Z	dZ
dZd	Zd
ZdZd Zd Zd Zd Zd Zd Zd Zedk    r e             dS dS )    N)PathzT/data/video-pipeline/Channel-Loi-Co-Nhan/project/11062026-001-Biet-Du-Thi-Khong-NhuczD/data/video-pipeline/Channel-Loi-Co-Nhan/data/logo/logoloiconhan.pngzX/data/video-pipeline/Channel-Loi-Co-Nhan/data/bgm/paulyudin-sentimental-story-182512.mp3zlogs/fix_sub_v4.log	   7   *      gffffff?c                 2   t          j        d          | z   }t          |d           t          j                            dd           t                              dd          5 }|                    |dz              d d d            d S # 1 swxY w Y   d S )	Nz%F %T T)flush)parentsexist_okautf-8encoding
)timestrftimeprintLOGparentmkdiropenwrite)slinefs      scripts_fix_sub_v4.pylogr      s    	x	 	 	"D	$dJTD111	#	(	(AAqwwtDy/A/A/AAAAAAAAAAAAAAAAAAAs   &BBBc           	          t          dd                    t          t          |                     z              t	          j        t          t          t          |                                d S )NzRUN  )r   joinmapstr
subprocess
check_calllist)cmds    r   runr'      sP    sxxC&&&'''$s3}}--.....    c                     t          t          j        dddddddt          |           gd	                                                    S )
Nffprobe-verrorz-show_entrieszformat=durationz-ofzdefault=nw=1:nk=1T)text)floatr#   check_outputr"   strip)ps    r   durr2      s    ()DQbchi|  ~A  BC  ~D  ~D  *E  LP  Q  Q  Q  W  W  Y  Y  Z  Z  Zr(   c                     t          t          | dz                      }|dz  }|dz  }|dz  }|dz  }|dz  }|dz  }|dd|dd|dd|dS )Ni  i6 i`  02:,03)intround)secmshmr   s        r   tsr>      s    
5T??Br7{QBKB2u9b%ibSUW[S[QR]_ae]e]_***Q***A***2****r(   c                    d                     |                     dd                                                    } g }t          j        d|           D ]}|                                }g }|D ]v}d                     ||gz             }|rDt	          |          t
          k    r,|                    d                     |                     |g}a|                    |           w|r(|                    d                     |                     g }|D ]k}|rRt	          |          t          k     s|dv r6t	          |d         dz   |z             t
          k    r|d         dz   |z   |d<   V|                    |           lg }	d}
|
t	          |          k     r|
dz   t	          |          k     r{t	          ||
                   t          k     r]t	          ||
         dz   ||
dz            z             t
          k    r0|	                    ||
         dz   ||
dz            z              |
dz  }
n |	                    ||
                    |
dz  }
|
t	          |          k     d	 |	D             S )
Nr   r   u   (?<=[,.;:!?…])\s+>      mình.   thiếu.r         c                     g | ]}||S  rF   ).0xs     r   
<listcomp>zchunks.<locals>.<listcomp>9   s    ###!#A###r(   )r    replacesplitrelen	MAX_CHARSappend	MIN_CHARS)r-   rawpiecewordscurwcandoutpartmergedis              r   chunksr[      s[   	$,,tC((..00	1	1D
C0$77 * *kkmmS 	 	A#qc'""D s4yy**

388C==)))s33

1)

388C==)))
C   	CIIi''43H+H+HcRUVXRYZ]R]^bRbNcNcenNnNnGCK$CGGJJtFq
c#hh,,Q3S>>c#a&kk)33CF3Js1Q3x<O8P8PR[8[8[MM#a&*S1X-...1MM#a&!!!1a41	 c#hh,,
 $#v####r(   c                     t          j        t          dz                      d                    } t          j        t          dz                      d                    d         }d | d         D             }g }d}|D ]}t	          ||d	                  d
                   }t          |d                   }t          |d                   }t          d||z
            }	|r|	t          |          z  t          k     rt          |          dk    rd }
t          t          |          dz
            D ]X}||         dz   ||dz            z   }t          |          t          dz   k    rt          |          nd}|
||
d         k     r|||f}
Y|
\  }}}|d |         |gz   ||dz   d          z   }|r.|	t          |          z  t          k     rt          |          dk    d |D             }t          |          }|}t          t          ||                    D ]{\  }\  }}|t          |          dz
  k    r|nt          |||	|z  |z  z             }|                    | dt!          |           dt!          |           d| d           |dz  }|}|t          dz  }|                    d                    |          d           |S )Nzscript/scenes.jsonr   r   z$audio/master_narration_timeline.jsonitemsc                      i | ]}|d          |S )scene_idrF   )rG   r   s     r   
<dictcomp>zwrite_srt.<locals>.<dictcomp>>   s    444AjM!444r(   scenesrC   r_   	narrationstart
speech_endg?r   
   i  r   rD   c                 H    g | ]}t          d t          |                     S )rC   )maxrM   )rG   cs     r   rI   zwrite_srt.<locals>.<listcomp>M   s&    +++1Qs1vv+++r(   r   z --> z4subtitles/master_subtitles_one_line_bottom_split.srt)jsonloadsPROJECT	read_textr[   r.   rg   rM   MIN_DURrangerN   sum	enumeratezipminrO   r>   
write_textr    )datatimelinera   blocksidxitcsrc   endtotalbestjcomboscore_weightswsumrT   nrh   rU   esubs                          r   	write_srtr   ;   s   	W11<<g<NN	O	ODZ!GGRR\cRddeefmnH44T(^444FF1s  &J(566BwK  eB|,<&=&=#SSQVYEWEWu 	'U3r77]W,,RD3r7719%% G GeCi1Q3'$'JJ	"$<$<c%jjj#<5a==a$IAa"1"vug~b1h&B  	'U3r77]W,,R ,++++#g,,TE R11 	 	GAeqB	\\ccs3eAgdl0B'C'CAMMS@@BsGG@@"Q%%@@1@@@AAAFCCC	 	FFCNN499V$$wN777Jr(   c            
         t                               dd           t                      } t          dz  }t          dz  }t          dz  }d|  dt           d	t
           d
t           d	}t          g ddddddddd|d|d|dddddddddddd d!d"d#d$d%d&d'|           t          d(z  }t          d)z  }t          d*z  }d+}t          g ddddd|d|d|d,d-dt          d|dd.dd/dddddddd d!d"d#d$d%d&d'|           t          dddd|dd0d1g           t          j
        t          d2z                      d                    }	|	                    t          |          d3t          t          t          d4           t          d2z                      t          j        |	d5d67          d           t#          d8t%          |          z              d S )9N r   r   zrender_onepass/segments.txtzaudio/master_narration.wavzoutput/main_story.mp4zT[0:v]scale=1080:1920:force_original_aspect_ratio=increase,crop=1080:1920,subtitles='z-':force_style='FontName=DejaVu Sans,FontSize=z,Outline=1,Alignment=2,MarginV=z,WrapStyle=2'[base];movie='zW',scale=160:-1,format=rgba,colorchannelmixer=aa=0.55[wm];[base][wm]overlay=W-w-35:35[v]ffmpegz-yr+   r,   z-fconcatz-safe0z-iz-filter_complexz-mapz[v]z1:az-r30z-c:vlibx264z-pix_fmtyuv420pz-c:aaacz-b:a192kz-ar44100z-ac2z	-shortestzoutput/intro/intro.mp4zoutput/intro/intro_pause_3s.mp4zoutput/final/final_video.mp4a  [0:v]setpts=PTS-STARTPTS[v0];[0:a]aresample=44100:async=1:first_pts=0[a0];[1:v]setpts=PTS-STARTPTS[v1];[1:a]aresample=44100:async=1:first_pts=0[a1];[2:v]setpts=PTS-STARTPTS[v2];[2:a]aresample=44100:async=1:first_pts=0[a2];[v0][a0][v1][a1][v2][a2]concat=n=3:v=1:a=1[vcat][voice];[3:a]aresample=44100,volume=0.10[bgm];[voice]volume=1.8[voiceboost];[voiceboost][bgm]amix=inputs=2:duration=first:dropout_transition=2,alimiter=limit=0.95[a]z-stream_loopz-1z[vcat]z[a]null-zoutput/info.json%one_line_bottom_split_v4_min_duration)duration_secsubtitle_modesubtitle_font_sizesubtitle_max_charssubtitle_min_duration_secFrD   )ensure_asciiindentz	COMPLETE )r   rs   r   rk   SUB_FONT_SIZESUB_MARGIN_VLOGOr'   BGMri   rj   rl   updater2   rN   rm   dumpsr   r"   )
r   seglistmastermainvfcintropausefinalfilter_complexinfos
             r   mainr   V   s   NN2N(((C11G//F
)
)E	p_b 	p 	p  R_ 	p 	p  @L 	p 	p	p 	p 	pB  	|  	|$  	|t  	|G  	|D  	|  	|'  	|#  	|d  	|7  	|4  	|PV  	|Wh  	|ik  	|lr  	|sx  	|y  	|  AF  	|  GK  	|  LP  	|  QW  	|  Xa  	|  bl  	|  mv  	|  w}  	|  ~C  	|  DJ  	|  KQ  	|  RW  	|  X_  	|  `e  	|  fi  	|  ju  	|  v{  	|  }  }  }
*
*E':[2[Ecj  lJ  dJ]bdN   	V  	V$  	Vt  	VG  	VD  	V  	Vt  	VE  	V$  	Vu  	V^  	VTX  	VY]  	V^a  	Vbs  	V  uC  	V  DJ  	V  KS  	V  TZ  	V  [`  	V  ae  	V  fj  	V  kq  	V  r{  	V  |F  	V  GP  	V  QW  	V  X]  	V  ^d  	V  ek  	V  lq  	V  ry  	V  z  	V  @C  	V  DO  	V  PU  	V  W  W  W$wtE$vc:;;;	W//::G:LL	M	MDKKE

;b  yF  \e  BI  J  J  K  K  K++DJtVW,X,X,Xbi+jjjCJJr(   __main__)ri   rL   r#   r   pathlibr   rk   r   r   r   r   r   rN   rP   rm   r   r'   r2   r>   r[   r   r   __name__rF   r(   r   <module>r      s+   ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !      cdd	T
PQQD	cdd!!
	
	B B B/ / /Z Z Z+ + +$ $ $8  6     , Zr(   