
    c*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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_timing_sub_v3.logg      ?g      @
   7   "   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_timing_sub_v3.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   durr1      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                 2   d                     |                     dd                                                    } g }t          j        d|           D ]}g }|                                D ]v}d                     ||gz             }|rDt	          |          t
          k    r,|                    d                     |                     |g}a|                    |           w|r(|                    d                     |                     d |D             S )Nr   r   u   (?<=[,.;:!?…])\s+c                     g | ]}||S  r@   ).0xs     r   
<listcomp>zchunks.<locals>.<listcomp>+   s       !a A   r'   )r   replacesplitrelen	MAX_CHARSappend)r,   outpiececurwcands         r   chunksrO      s   	$,,tC((..00	1	1D
C0$77 * * 	 	A#qc'""D s4yy**

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

1)

388C==)))  s    r'   c                  L  $ t                               dd           t          j        t          dz                      d                    } t          dz  }t          dddd	d
ddddt          dd|g           t          dz  }g }g }d}| d         D ]}|d         }t          dz  |z  dz  }t          |          }	|	t          z   }
|	                    d| d| d           |	                    ||||
z   ||	z   |
|	t          t          |          t          t          dz  | dz            d	           ||
z  }|                    d                    |          d           t          dz  }t          dddd	d
ddd d|d!d"d#d$dd|g           t          d%z                      t          j        t          |          |d&d'd()          d           t          d*z  }g }d+}|D ]$t          $fd,| d         D                       }t          |          }$d-         }$d.         }t          d/||z
            }d0 |D             }t!          |          }|}t#          ||          D ]`\  }}t%          ||||z  |z  z             }|	                    | d1t'          |           d2t'          |           d1| d1           |d+z  }|}a|                    d1                    |          d           t          d3z  }g }|D ]O$|	                    dt          dz  $d         dz   z   d           |	                    d4$d5         d6d1           P|	                    dt          dz  |d7         d         dz   z   d           |                    d                    |          d           t          d8z  }d9| d:t(           d;t*           d<t,           d=	}t          g dddd	d
ddd d|d|d>|d?d@d?dAdBdCdDdEdFdGddHdIdJd!d"d#dKdL|           t          dMz  }t          dNz  }t          dddd	dOd$d|d
dddPdt.          dQdRdBdCdDdEdFdGddHdL|g           t          dSz  } t          dTz  }!dU}"t          g dddd	d| d|d|dVdWdt0          d>|"d?dXd?dYdBdCdDdEdFdGddHdIdJd!d"d#dKdL|!           t          ddd	d|!d
dZd[g           t          j        t          d\z                      d                    }#|#                    t          |!          t          t.          d]d^d_           t          d\z                      t          j        |#d'd()          d           t5          d`t          |!          z              d S )aN r   r   zscript/scenes.jsonz!audio/silence_scene_pause_0_5.wavffmpegz-yr*   r+   z-flavfiz-izanullsrc=r=44100:cl=monoz-tz-c:a	pcm_s16lezaudio/concat_0_5.txtg        scenesscene_idzaudio/voice_segmentszseg_001.wavzfile 'z'
file 'z'
zimages/scenesz.png)	rV   startend
speech_enddurationaudio_duration	pause_sec
audio_path
image_pathzaudio/master_narration.wavconcatz-safe0z-ar44100z-ac1z$audio/master_narration_timeline.json)duration_secitemsF   )ensure_asciiindentz4subtitles/master_subtitles_one_line_bottom_split.srt   c              3   L   K   | ]}|d          d          k    |d         V  dS )rV   	narrationNr@   )rA   scits     r   	<genexpr>zmain.<locals>.<genexpr>C   s:      ]]bbnbQ[n>\>\"[/>\>\>\>\]]r'   rW   rY   g?c                 H    g | ]}t          d t          |                     S )rh   )maxrG   )rA   cs     r   rC   zmain.<locals>.<listcomp>E   s&    +++1Qs1vv+++r'   r   z --> zrender_onepass/segments.txtz	duration rZ   z.3fz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]z-filter_complexz-mapz[v]z1:az-r30z-c:vlibx264z-pix_fmtyuv420paacz-b:a192k2z	-shortestz&output/thumbnails/thumb_9x16_final.pngzoutput/intro/intro_pause_3s.mp4z-loopzanullsrc=r=44100:cl=stereoz-vfzCscale=1080:1920:force_original_aspect_ratio=increase,crop=1080:1920zoutput/intro/intro.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_continuous$concat_filter_voice_boost_bgm_low_v3)rc   scene_pause_secintro_pause_secsubtitle_mode	audio_fixz	COMPLETE )r   
write_textjsonloadsPROJECT	read_textr&   SCENE_PAUSEr1   rI   r!   r   dumpsnextrO   ro   sumzipminr=   SUB_FONT_SIZESUB_MARGIN_VLOGOINTRO_PAUSEBGMupdater   )%datasilencer_   linestimelinetrk   sidapdvisualmastersubblocksidxr,   csrW   rX   totalweightswsumrL   rp   rM   eseglistsegtxtmainvfcthumbpauseintrofinalfilter_complexinforl   s%                                       @r   mainr   -   s	   NN2N(((	W11<<g<NN	O	OD77G$tGD6PQUVabhitu|}~~~))F
ErhS18n  zNw'==cA-OB
b''!K-67b777777888C&aPQc]cuv  DO  ]`  ac  ]d  ]d  ru  v}  ~M  vM  QT  NZ  NZ  NZ  vZ  r[  r[  \  \  	]  	]  	]	V
bggennw777//F$tGD'#d6%PWX]^abhitu{|}}}33??
[^_e[f[fowKxKx  GL  TU  AV  AV  AV  `g?  h  h  hFFCF1s  ]]]]DN]]]]]$<<r'{<0@CCPSTYPYHZHZ%+++++#g,,TEr'?? 	 	CAa#sU1WT\)**AMMS@@BsGG@@"Q%%@@1@@@AAA1HC!cc	 NN499V$$wN77711GF : :Sw6:v8MNSSSTTT8"Z.88889999
MMY7?2HRL4LV4STYYYZZZrwwv999
)
)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
3
3E$tGGCU4Mijnoz  |A  BG  HL  MQ  RX  Yb  cm  nw  x~  D  EP  QV  	W  X  X  X
*
*E':X2XE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

[[f  xZ  gM  N  N  O  O  O++DJtVW,X,X,Xbi+jjjCJJr'   __main__)r   rF   r"   r   pathlibr   r   r   r   r   r   r   r   r   rH   r   r&   r1   r=   rO   r   __name__r@   r'   r   <module>r      s   ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !      cdd	T
PQQD	cdd((
	B B B/ / /Z Z Z+ + +! ! !:  :  : v Zr'   