o
    'WgM                  	   @   s   d dl Z d dlZd dlZG dd deZedkrke Zed ed ejddd	d
d	d ej	dd	d	d
d	d ej	dd	d	d
dd ej
dddddddd ej
dddddddd ed ed e  dS dS )    Nc                   @   sj   e Zd Zdd Zdd ZdddZddd	ZdddZdd Zdd Z	dd Z
dd Zdd Zdd ZdS )Streamc                 C   sL   d| _ d| _d| _d| _d| _d| _g | _ g | _g | _g | _i | _	i | _
d S )N )cmdout_file
vcode_type
input_fileword_list_strsubbtitle_fileimg_file	word_listimg_dynamic_list
image_listdynamic_list)self r   L/var/www/html/audio_editor/env/lib/python3.10/site-packages/ffmpeg/stream.py__init__   s   
zStream.__init__c                 C   s
   || _ d S )N)r   r   filer   r   r   input   s   
zStream.input0c              	   C   s   |dkrdS |   }|dkrt|d d d }|t|t|t|t|d}| j| g }g }	| jD ]}
|d|
d	   |	d
|
d |
d |
d |
d f  q5d|}d|	}||d| _d S )Nr   Fr   formatduration      $@)imgxystr_timeend_timez -i %sr   z0 overlay=x=%s:y=%s:enable='if(gt(t,%s),lt(t,%s))r   r   r   r    ,r   overlay)
video_infofloatstrr
   appendjoinr   )r   r   r   r   r   r   
input_infoimg_data	img_inputimg_overlayvalimg_input_strimg_overlay_strr   r   r   r   !   s6   



z
Stream.imgc              	   C   s   |   }|dkr
dS |dkrt|d d d }d| t|t|t|t|d}| j| g }g }	| jD ]}
||
d  |	d	|
d
 |
d |
d |
d f  q7d|}d|	}||d| _d S )Nr   Fr   r   r   z -ignore_loop 0 -i %s)r   r   r   r   r   r   z= overlay=x=%s:y=%s:shortest=1:enable='if(gt(t,%s), lt(t,%s))'r   r   r   r   r   r    r!   )r#   r$   r%   r   r&   r'   r   )r   r   r   r   r   r   r(   apngimg_dy_inputimg_dy_overlayr,   img_dy_input_strimg_dy_overlay_strr   r   r   img_dynamicI   s6   



zStream.img_dynamicr   whitec           
   	   C   s   |dkrdS |   }|dkrdS |dkrt|d d d }d|t|t|t|t|t|t|f }	| j|	 d| j| _d S )	Nr   Fr   r   r   r   zU drawtext=text='%s':x=%s:y=%s:enable='if(gt(t,%s),lt(t,%s))':fontfile=%s:fontcolor=%sr    )r#   r$   r%   r   r&   r'   r   )
r   cr   r   r   r   fontcolorr(   textr   r   r   word_water_markm   s   (zStream.word_water_markc                 C   s   d| | _ d S )Nz subtitles=%s)r	   r   r   r   r   	subbtitle}   s   zStream.subbtitlec                 C      |dkrdS d| | _ d S )Nr   Fz -vcodec %s)r   )r   coder   r   r   vcode      zStream.vcodec                 C   r<   )Nr   Fz%s)r   r   r   r   r   out   r?   z
Stream.outc                 C   sF  | j dkrdS d| j  }d}t| jdkr8| jd dkr8d|| jd f }|dkr3d|| jd f }n| jd }t| jdkr[d|| jd f }|dkrVd|| jd f }n| jd }| jdkro|dkrld|| jf }n| j}| jdkr|dkrd|| jf }n| j}| jdkrd	||| j| jf | _n	d
||| jf | _| 	  d S )Nr   Fzffmpeg -i %sr   r   z%s %sz%s,%sr"   z %s -filter_complex "%s" -y %s %sz%s -filter_complex "%s" -y %s)
r   lenr   r   r   r	   r   r   r   do)r   imovr   r   r   run   s4   






z
Stream.runc                 C   sJ   i }t j| jdu r|S ddddddd| jg}t|}t|d	S )
NFffprobez-vquietz-print_formatjsonz-show_formatz-show_streamszutf-8)	ospathisfiler   
subprocesscheck_outputrH   loadsdecode)r   resultr   returned_datar   r   r   r#      s   
zStream.video_infoc                 C   s.   | j dkrdS tj| j dd}|dkrdS dS )Nr   FT)shellr   )r   rL   call)r   resr   r   r   rB      s   
z	Stream.doN)r   r   r   r   )r   r   r   r   r   r5   )__name__
__module____qualname__r   r   r   r4   r:   r;   r>   r@   rE   r#   rB   r   r   r   r   r      s    

(
$+
r   __main__zface.mp4zt1.pngzt2.png10
      )r   r   r   zt1.apng)r   r   r   r   zt2.apng	   u   测试文字水印1r   20zttf.ttfr5   )r   r   r   r   r7   r8   u   测试文字水印2zsrt.srtzout.mp4)rI   rH   rL   objectr   rU   streamr   r   r4   r:   r;   r@   rE   r   r   r   r   <module>   s$    A



