o
    'Wåg!  ã                   @   sv   d dl Z dd„ Zdd„ Zdd„ Zdd	„ Zd
d„ Zdd„ Zdd„ Zdd„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zddd„ZdS )é    Nc                 C   sB  z–t |ƒdkr
W dS g }d}g }d}|D ]_}t |d ƒdkr"d|d< t |d ƒdkr.d|d< | |d ¡ t |d	 ƒdkrdt |d
 ƒdkrVd|d |d |d	 |d
 f }nd|d |d |d	 f }n
d|d |d f }| |¡ q| |¡}	| |¡}d| |	||f }
tj|
dd}|dkr”W dS W dS  ty    Y dS w )Nr   Fú -i ú,ÚxÚ0ÚyÚimgÚstr_timeÚend_timez0overlay=x=%s:y=%s:enable='if(gt(t,%s),lt(t,%s))'z'overlay=x=%s:y=%s:enable='if(gt(t,%s))'zoverlay=x=%s:y=%sz-ffmpeg -i %s -i %s -filter_complex "%s" -y %sT©Úshell©ÚlenÚappendÚjoinÚ
subprocessÚcallÚ	Exception)Ú
input_fileÚimg_dataÚout_fileÚimg_listÚimg_list_strÚpng_complexÚcomplex_png_strr   Úcmp_strÚimg_str_listÚcmdÚres© r   úK/var/www/html/audio_editor/env/lib/python3.10/site-packages/ffmpeg/video.pyÚins_img   s:   "

ÿr    c                 C   sà   ze|d dkr
W dS |d dkrd|d< |d dkrd|d< |d dkrI|d dkr;d	|d |d |d |d f }nd
|d |d |d f }nd}d| |d ||f }t j|dd}|dkrcW dS W dS  tyo   Y dS w )Nr   Ú Fr   r   r   r   r	   z<overlay=x=%s:y=%s:shortest=1:enable='if(gt(t,%s), lt(t,%s))'z1overlay=x=%s:y=%s:shortest=1:enable='if(gt(t,%s)'zoverlay=x=%s:y=%s:shortest=1z<ffmpeg -i %s -ignore_loop 0 -i %s -filter_complex "%s" -y %sTr
   ©r   r   r   )r   r   r   Úcompr   r   r   r   r   Úins_dynamic_img4   s6   þÿÿÿr$   c                 C   óD   zd| |f }t j|dd}|dkrW dS W dS  ty!   Y dS w )Nz#ffmpeg -y -i %s -vcodec copy -an %sTr
   r   Fr"   ©r   r   r   r   r   r   r   Úseparate_audioX   ó   ÿr'   c                 C   sF   zd| ||f }t j|dd}|dkrW dS W dS  ty"   Y dS w )Nz8ffmpeg -y -i %s -filter_complex '[1:0]apad' -shortest %sTr
   r   Fr"   )r   Úmute_mp3_filer   r   r   r   r   r   Úvideo_ins_mute_audioe   s   ÿr*   c                 C   sJ   zd| ||||f }t j|dd}|dkrW dS W dS  ty$   Y dS w )Nz/ffmpeg -y -i %s -s %sx%s -b %sk -acodec copy %sTr
   r   Fr"   )r   ÚwidthÚheightÚrater   r   r   r   r   r   Ú
trans_coder   s   ÿr.   c           
      C   sB  z–t |ƒdkr
W dS g }d}d}|D ]l}|d dkrd|d< |d dkr(d|d< |d	 dkr2d
|d	< |d dkr=d|d< nt|d ƒ|d< |d dkrPd|d< nt|d ƒ|d< d|d |d |d |d |d	 |d |d |d f }| |¡ | |¡}qd| ||f }tj|dd}	|	dkr”W dS W dS  ty    Y dS w )Nr   Fz, r!   Úfontsizeé(   Ú	fontcolorÚwhiter   Ú100r   Úspeeté–   z]drawtext=text='%s':fontcolor=%s:fontsize=%s:fontfile=%s:y=%s:x=w-(t-%d)*%d:enable='gte(t,%d)'ÚcontextÚfontfilezffmpeg -y -i %s -vf "%s" %sTr
   )r   Úintr   r   r   r   r   )
r   Úbarrager   ÚbagÚbag_strÚvf_strÚvalÚtxtr   r   r   r   r   Úins_barrage   sN   

ø

ÿr?   c                 C   sR   z|dkrd}d| ||f }t j|dd}|dkrW dS W dS  ty(   Y dS w )Nr!   Ú1z2ffmpeg -y -i %s -filter_complex "setpts=PTS/%s" %sTr
   r   Fr"   )r   Úspeedr   r   r   r   r   r   Úplayback_speedµ   s   ÿrB   c                 C   r%   )Nz/ffmpeg -y -i %s -vf vf reverse -af areverse %s Tr
   r   Fr"   r&   r   r   r   Úa_v_reverseÅ   r(   rC   c                 C   r%   )Nz"ffmpeg -y -i %s -vf vf reverse %s Tr
   r   Fr"   r&   r   r   r   Ú	v_reverseÒ   r(   rD   c                 C   sH   zd| |||f }t j|dd}|dkrW dS W dS  ty#   Y dS w )Nz&ffmpeg -y -i %s -ss %s -t %s -f mp4 %sTr
   r   Fr"   )r   Ú
str_secondÚdurationr   r   r   r   r   r   Úv_interceptß   s   ÿrG   c                 C   r%   )Nz1ffmpeg -y -f concat -safe 0 -i %s -acodec copy %sTr
   r   Fr"   r&   r   r   r   Ústrict_v_mergeì   r(   rH   c                 C   s¼   zSt | ƒdk r
W dS g }t | ƒ}d}g }d}d}| D ]}| |¡ d||f }	| |	¡ |d7 }q| |¡}
| |¡}d|
|||f }tj|d	d
}|dkrQW dS W d	S  ty]   Y dS w )Né   Fr   ú r   z[%s:a][%s:v]é   zNffmpeg -y -i %s -filter_complex "%s concat=n=%d:v=1:a=1" -vcodec h264_nvenc %sTr
   r   )Úinput_file_listr   ÚvideoÚvideo_nÚ	video_strÚ	comp_listÚcomp_strÚir=   Úv_strÚ
video_listÚcom_list_strr   r   r   r   r   Údamage_v_mergeù   s:   




üÿrV   Úpngc                 C   sd   z'|  d¡}|d }d|||f }d| |f }tj|dd}|dkr%W dS W dS  ty1   Y dS w )	Nú/z_%dz%s/%s.%szffmpeg -i %s -f image2 %sTr
   r   F)Úrstripr   r   r   )r   Úout_pathÚ
img_prefixÚcategoryr   Úout_imgr   r   r   r   r   Úvideo_trans_img   s   
ÿr^   )rW   )r   r    r$   r'   r*   r.   r?   rB   rC   rD   rG   rH   rV   r^   r   r   r   r   Ú<module>   s   ,$6'