FFMPEG добавляет круглую маску к видео, конвертирует в черно-белое и объединяет

Привет всем, я новичок, и я был бы признателен за вашу помощь.

Я делаю мобильное приложение, которое генерирует пользовательские видеорезюме на основе видео пользователя, снятого с его телефона, пользователь должен загрузить 5 разных видео на сервер из мобильного приложения, на стороне сервера я хочу:

  • Добавьте круглую маску .png к каждому видео.
  • Сделайте каждое видео черно-белым.
  • Объедините видео с другими уже существующими заглавными видео (например, [userVideo1] [title1] [userVideo2] [title2]...) Наглядный пример

    [Редактировать: я хотел бы больше возможностей]

  • Добавить фоновую музыку
  • Добавьте логотип водяного знака посередине
  • Удалить немые кадры с начала и с конца
  • Некоторые входные видео могут быть повернуты, я хочу повернуть видео в нормальное состояние, если они повернуты.

До сих пор мне удалось добавить круглую маску, сделать видео черно-белым и объединить 3 видео, включая предварительно созданное заглавное видео, но второе пользовательское видео не имеет звука на выходе.

Это сценарий, с которым я закончил:

ffmpeg -i uservid1.mov -i uservid2.mp4 -i mask.png -i title1.mp4  -preset 
ultrafast -filter_complex "

[2:v][0:v]scale2ref[s1][s2];     
[s2][s1]overlay[vid1];  
[2:v][1:v]scale2ref[s3][s4]; 
[s4][s3]overlay[vid2];  
[vid1]hue=s=0[v0]; 
[vid2]hue=s=0[v1];  
[v0]scale=720x400[in0]; 
[v1]scale=720x400[in1]; 
[3:v]scale=720x400[in3]; 
[in0]setsar=sar=0[final0]; 
[in1]setsar=sar=0[final1];      
[in3]setsar=sar=0[final3]; 
[final0][final3][final1]concat=n=3;"

-codec:a copy finalCV.mp4  

person Yassine    schedule 30.04.2018    source источник


Ответы (1)


Использовать

ffmpeg -i uservid1.mov -i uservid2.mp4 -i mask.png -i title1.mp4 -f lavfi -t 1 -i anullsrc 
-filter_complex
"[2:v][0:v]scale2ref[s1][s2];
 [s2][s1]overlay,hue=s=0,scale=720x400,setsar=1[v0];
 [2:v][1:v]scale2ref[s3][s4];
 [s4][s3]overlay,hue=s=0,scale=720x400,setsar=1[v1];
 [3:v]scale=720x400,setsar=1[v3];
 [v0][0:a][v3][4:a][v1][1:a]concat=n=3:v=1:a=1"
-preset ultrafast finalCV.mp4

Звук также должен быть объединен. Я предполагаю, что в заглавном видео нет звука, поэтому я установил фиктивный беззвучный 1-секундный поток в качестве последнего входа.

person Gyan    schedule 30.04.2018
comment
Да, действительно, в названии видео нет звука. Большое спасибо, это работает! - person Yassine; 02.05.2018
comment
Я добавил еще несколько функций, я был бы очень признателен, если бы вы могли помочь мне и с ними, заранее спасибо. - person Yassine; 03.05.2018
comment
Какую версию ffmpeg вы используете? - person Gyan; 03.05.2018
comment
Вот что я получил, набрав ffmpeg -version ffmpeg version N-90313-gb173e03536 built with gcc 7.3.0 (GCC) libavutil 56. 9.100 libavcodec 58. 14.100 libavformat 58. 10.100 libavdevice 58. 2.100 libavfilter 7. 13.100 libswscale 5. 0.102 libswresample 3. 0.101 libpostproc 55. 0.100 - person Yassine; 04.05.2018