
    %Ui                         S SK rS SKrS\S\S\4S jrS\SS4S jrS\S	\S\4S
 jrS\S\4S jr	\
S:X  a	  SrSrSrSrgg)    Nentryinput_file_pathreturnc                     SSSSSSSSU  3S	S
S	SU/n[         R                  " USSS9nUR                  R                  5       R	                  S5      n[        U5        U$ )uY   
entry (str) — можно делать списком 

Возвращает list(str)
ffprobez-verrorz-hide_bannerz-select_streamszv:0z-show_entrieszstream=z-ofzdefault=noprint_wrappers=1zcsv=p=0:s=|T)capture_outputtext|)sprunstdoutstripsplitprint)r   r   entry_get_commandresultouts        /app/server_side_tasks.pyget_video_infor      sx     	
%$ VV%dFF
--



%
%c
*C	#JJ    commandc                 B    [        U 5        [        R                  " U SS9$ )u/   
Запускает программу command
T)r
   )r   r   r   )r   s    r   runWithCommandLiner   !   s     
'N66'%%r   datatimingsc                 B   US   tp4pV[         R                  R                  S[         R                   U  [         R                   U 35      n[         R                  R	                  Xt SU 35      n[         R                  R	                  Xt SU 35      n	UR                  S5       V
Vs/ sH2  oR                  S5       Vs/ sH  oR                  SS5      PM     snPM4     nn
n/ n[        U5      nUS	:  a  [        e[        U5       H>  u  nnS
US    SUS	    SUS	-    SUS    SUS	    SUS	-    S3nUR                  U5        M@     SR                  SR	                  [        S	[        U5      S	-   5       Vs/ sH
  nSU S3 PM     sn5      USR	                  [        S	[        U5      S	-   5       Vs/ sH
  nSU S3 PM     sn5      U5      nSR	                  U5       SU 3nSSUSUSSSSSU	/n[        U5        [        U5        U	$ s  snf s  snn
f s  snf s  snf )Nvideoworkdir.z_cut.
-:z\:   z[0:v]trim=start='r   z':end='z',setpts=PTS-STARTPTS[voutz];[0:a]atrim=start='z',asetpts=PTS-STARTPTS[aout]z1{}concat=n={}:v=1:a=0[v];{}concat=n={}:v=0:a=1[a] z[voutz[aout;ffmpeg-i-filter_complex-mapz[v]z[a]-y)ospathabspathsepjoinr   replacelen
ValueError	enumerateappendformatranger   r   )user_idr   r   sessionnameext_root_directory
video_pathout_pathlinejarrtime_arrconcat_nntimingr   toutscomplex_statementfinals                         r   ffmpeg_video_cutterrL   *   s   !']G3WW__wrvvhwixy%QRNnauo>Jww||NfE#,?@H FM]]SWEXEXT

3813	8EX   H3xH!|s^	6!&)GF1I;>XYZ]^Y^X__stz{|t}s~  F  GM  NO  GP  FQ  Ql  mn  qr  mr  ls  st  u $ ?EE
E!S]Q5F,GH,GqeA3aL>",GHI
E!S]Q5F,GH,GqeA3aL>",GHI	D 88H-.av6 	E 
%LuOG 	9 IHs$   (H?HH9H5HHc                 (   US   u  p#pEn[         R                  R                  S[         R                   U  [         R                   U 35      n[         R                  R	                  Xs SU 35      n[         R                  R	                  Xs SU 35      n	US   S:X  a  SOSn
S	n[        S
US9n[        U5        [        US   5      [        US   5      pUS   n[        US   5      n[        SU SU SU SU SU 3
5        X:  a  [        S5        SnSnO[        S5        SnSnUS:X  a  [        SU 35        / SQnO[        SU 35        / nSU SU S 3nS!/UQS"PUPS"PU
PS"PUPS#PS$PS"PS%U S&U S'U 3PS(PUPS)PS*PS)PS+PS,PS-PS.PS/PS0PU	PnU$ )1u}  
Производит list с аргументами для командной строки ffmpeg. 

user_id — получается из message.from_user.id, его нужно передавать для формирования пути 

data получается из State.get_data(). Можно закидывать всё, алгоритм ищет только значения по ключам 'subs', 'watermark', и список по ключу 'video'.
Возвращает список из 2 элементов. 1 — аргументы; 2 — прямая ссылка на выходной файл в системе
r   r   r    z_edited.	watermarkwzklops_icon_white.pngzklops_icon_black.pngzklops_logo_white.pngz!width,height,color_space,duration)r   r   r   r$         u   Ширина из data: u   , реальная: u   
Высота из data: u   
Длительность: u'   Видео горизонтальноеzscale=w=oh*dar:h=rw/5zscale=w=rh/3:h=ow/daru#   Видео вертикальноеzscale=w=rh/5:h=ow/darzscale=w=rw/3:h=ow/darreserveduC   У видео нестандартное пространство: )z-bsf:vzQh264_metadata=colour_primaries=1:transfer_characteristics=1:matrix_coefficients=1z-colorspacer$   z
-color_trcr$   z-color_primariesr$   u?   У видео стандартное пространство: z[1][3:v]z|[icon];[3:v][icon]overlay=(W-w)/2:(H-h)/2:format=auto[iot];[0:v][iot]blend=all_mode=overlay:all_opacity=0.5[back];[2:v][3:v]zD[logo];[back][logo]overlay=(W-w)-h:h:format=auto,format=yuv420p[out]r(   r)   z-flavfizcolor=c=0x7F7F7F:s=xz:d=r*   r+   z[out]z0:a?z-c:vlibx264z-presetfastr,   )	r-   r.   r/   r0   r1   r   r   intfloat)r9   r   r:   r;   r<   widthheightr>   r?   r@   watermark_path	logo_path
video_info
real_widthreal_heightcolor_spaceduration	scaleExpr
RscaleExprdecoderJ   rK   s                         r   ffmpeg_logo_writerre   W   s    )-W%G3vWW__wrvvhwixy%QRNnauo>Jww||NfHSE,BCH"&{"3s":@V  'I1:J 
*!*Q-0#jm2DQ-KZ]#H	$UG+?
|Keflem  nB  CN  BO  Ok  lt  ku  v  w78+	,
34+	,
j ST_S`ab	
 	OP[}]^"9+  .j  ku  jv  vz  { 		 	 		
 	 	 	 	 	 	 	 j\;-s8*E 	 	 	  	!" 	#$ 	%& 	'( 	)* 	+, 	-. 	/0 	1E6 Lr   __main__z%E:\pythonB0T\834893201\test2\root.mp4z(E:\pythonB0T\834893201\test2\wat_sub.mp4z1E:\pythonB0T\834893201\test2\klops_logo_white.pngz%E:\pythonB0T\834893201\test2\root.srt)
subprocessr   r-   strlistr   r   dictrL   re   __name__input_videooutput_videorN   subs r   r   <module>rp      s     	#   6& & &*t *c *c *ZOd Ot Of z:K>LDI3D	 r   