
    ]*j                         d dl Z 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ef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_audio_v2.log
   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_sub_audio_v2.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          j        t          j        ddddddddt	          |           g	d	
                    S )Nffprobe-verrorz-show_entrieszformat=durationz-show_streamsz-ofjsonT)text)r-   loadsr#   check_outputr"   ps    r   prober3      sq    :j-ygoVghwx}  E  FI  JK  FL  FL  /M  TX  Y  Y  Y  Z  Z  Zr(   c                 R    t          t          |           d         d                   S )Nformatduration)floatr3   r1   s    r   durr8      s     q(#J/000r(   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   tsrD      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 ]q}d                     ||gz             }|r?t	          |          |k    r,|                    d                     |                     |g}\|                    |           r|r(|                    d                     |                     d |D             S )Nr   r   u   (?<=[,.;:!?…])\s+c                     g | ]}||S  rG   ).0r2   s     r   
<listcomp>zchunks.<locals>.<listcomp>0   s    """!"A"""r(   )r    replacesplitrelenappend)r.   	max_charspartspiecewordscurwcands           r   chunksrV       s   	$,,tC((..00	1	1D
E0$77 ( (kkmm 	 	A#qc'""D s4yy**SXXc]]+++C

1 	(LL#'''""u""""r(   c                     t          j        t          dz                      d                    d         } d t          j        t          dz                      d                    d         D             }g }d}| D ]}||d	                  d
         }t	          |          }t          |d                   }t          |d                   }t          d||z
            }	d |D             }
t          |
          }|}t          ||
          D ]b\  }}|	|z  |z  }t          |||z             }|
                    | dt          |           dt          |           d| d           |dz  }|}ct          dz  }|j                            dd           |                    d                    |          d           |S )Nz$audio/master_narration_timeline.jsonr   r   itemsc                      i | ]}|d          |S )scene_idrG   )rH   r   s     r   
<dictcomp>zwrite_srt.<locals>.<dictcomp>4   s    vvvAjM!vvvr(   zscript/scenes.jsonscenes   rZ   	narrationstart
speech_endg?c                 H    g | ]}t          d t          |                     S )r]   )maxrM   )rH   cs     r   rI   zwrite_srt.<locals>.<listcomp>:   s&    +++1Qs1vv+++r(   r   z --> z4subtitles/master_subtitles_one_line_bottom_split.srtTr	   )r-   r/   PROJECT	read_textrV   r7   rb   sumzipminrN   rD   r   r   
write_textr    )timeliner\   blocksidxitr.   csr_   endtotalweightswsumtrc   rT   desubs                     r   	write_srtrw   2   s   Z!GGRR\cRddeefmnHvvTZ9M1M0X0Xbi0X0j0j%k%klt%uvvvFF1s  BzN#K0$<<BwK  eB|,<&=&=#SSQVYEWEWu+++++\\
r'?? 	 	CAaAgdlA#acllAMMS>>BqEE>>1>>>>>???FCaAA		
 	FFCJTD111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          d4d5           t          d2z                      t          j        |	d6d78          d           t!          d9t#          |          z              d S ):N 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_4s.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!concat_filter_voice_boost_bgm_low)duration_secsubtitle_modesubtitle_font_sizesubtitle_max_chars	audio_fixF   )ensure_asciiindentz	COMPLETE )r   ri   rw   rd   SUB_FONT_SIZESUB_MARGIN_VLOGOr'   BGMr-   r/   re   updater8   	MAX_CHARSdumpsr   r"   )
rv   seglistmastermainvfcintropausefinalfilter_complexinfos
             r   mainr   G   s   NN2N(((C11G//F
)
)E	*	* 	*HU	* 	* wC	* 	*	* 	* 	*    	|  	|$  	|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
0
0E	d    	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

;Rhu  LU  bE  F  F  G  G  G++DJt%XY,Z,Z,Zel+mmmCJJr(   __main__)r-   mathrL   r#   r   pathlibr   rd   r   r   r   r   r   r   r   r'   r3   r8   rD   rV   rw   r   __name__rG   r(   r   <module>r      sG   ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' '      cdd	T
PQQD	cdd''
	B B B/ / /Z Z Z1 1 1+ + + % # # # #$  *     @ Zr(   