Создание видео с изображений с различными SAR с помощью FFMPEG
Я пытаюсь запустить команду ffmpeg :
ffmpeg -y -threads 2 -loop 1 -t 5 -i watermark-0.png -loop 1 -t 2.5 -i watermark-1.png -loop 1 -t 2.5 -iwatermark-2.png -loop 1 -t 2.5 -i watermark-3.png -loop 1 -t 2.5 -i4.png -loop 1 -t 2.5 -i watermark-5.png -loop 1 -t 2.5 -i watermark-6.png -loop 1 -t 2.5 -i watermark-7.png -filter_complex [1:v][0:v]blend=all_expr='A*(if(gte(T,0.5),1,T/0.5))+B*(1-(if(gte(T,0.5),1,T/0.5)))'[b1v];[2:v][1:v]blend=all_expr='A*(if(gte(T,0.5),1,T/0.5))+B*(1-(if(gte(T,0.5),1,T/0.5)))'[b2v];[3:v][2:v]blend=all_expr='A*(if(gte(T,0.5),1,T/0.5))+B*(1-(if(gte(T,0.5),1,T/0.5)))'[b3v];[4:v][3:v]blend=all_expr='A*(if(gte(T,0.5),1,T/0.5))+B*(1-(if(gte(T,0.5),1,T/0.5)))'[b4v];[5:v][4:v]blend=all_expr='A*(if(gte(T,0.5),1,T/0.5))+B*(1-(if(gte(T,0.5),1,T/0.5)))'[b5v];[6:v][5:v]blend=all_expr='A*(if(gte(T,0.5),1,T/0.5))+B*(1-(if(gte(T,0.5),1,T/0.5)))'[b6v];[7:v][6:v]blend=all_expr='A*(if(gte(T,0.5),1,T/0.5))+B*(1-(if(gte(T,0.5),1,T/0.5)))'[b7v];[0:v][b1v][1:v][b2v][2:v][b3v][3:v][b4v][4:v][b5v][5:v][b6v][6:v][b7v][7:v]concat=n=15:v=1:a=0,format=yuv420p[v] -map [v] -c:v libx264 -r 120 -s 1280x720 -aspect 16:9 -crf 1 -preset ultrafast output.mp4
Но, я получаю ошибку ffmpeg: первые параметры верхнего уровня ввода (размер 1280×720, SAR 5689: 5669) не соответствуют соответствующим нижним параметрам второй входной связи (1280×720, SAR 1: 1)
Ffmpeg stdout:
- Как создать видео с изображений с помощью FFmpeg?
- Последовательность изображений для качества видео
- Быстрое сжатие видео на Android
- Как извлечь субтитры из видео с помощью ffmpeg?
- Ffmpeg для преобразования VHS mpeg2 / mp2 в H264 / MP4 VBR и уменьшения размера файла
Input #0, png_pipe, from '/media/test/a0201d256f97c39d4f05-watermark-0.png': Duration: N/A, bitrate: N/A Stream #0:0: Video: png, rgb24, 1280x720 [SAR 72:72 DAR 16:9], 25 fps, 25 tbr, 25 tbn, 25 tbc Input #1, png_pipe, from '/media/test/a0201d256f97c39d4f05-watermark-1.png': Duration: N/A, bitrate: N/A Stream #1:0: Video: png, rgb24, 1280x720 [SAR 5905:5905 DAR 16:9], 25 fps, 25 tbr, 25 tbn, 25 tbc Input #2, png_pipe, from '/media/test/a0201d256f97c39d4f05-watermark-2.png': Duration: N/A, bitrate: N/A Stream #2:0: Video: png, rgb24, 1280x720 [SAR 100:100 DAR 16:9], 25 fps, 25 tbr, 25 tbn, 25 tbc Input #3, png_pipe, from '/media/test/a0201d256f97c39d4f05-watermark-3.png': Duration: N/A, bitrate: N/A Stream #3:0: Video: png, rgb24, 1280x720 [SAR 11378:11338 DAR 91024:51021], 25 fps, 25 tbr, 25 tbn, 25 tbc Input #4, png_pipe, from '/media/test/a0201d256f97c39d4f05-watermark-4.png': Duration: N/A, bitrate: N/A Stream #4:0: Video: png, rgb24, 1280x720 [SAR 72:72 DAR 16:9], 25 fps, 25 tbr, 25 tbn, 25 tbc Input #5, png_pipe, from '/media/test/a0201d256f97c39d4f05-watermark-5.png': Duration: N/A, bitrate: N/A Stream #5:0: Video: png, rgb24, 1280x720 [SAR 3779:3779 DAR 16:9], 25 fps, 25 tbr, 25 tbn, 25 tbc Input #6, png_pipe, from '/media/test/a0201d256f97c39d4f05-watermark-6.png': Duration: N/A, bitrate: N/A Stream #6:0: Video: png, rgb24, 1280x720 [SAR 100:100 DAR 16:9], 25 fps, 25 tbr, 25 tbn, 25 tbc Input #7, png_pipe, from '/media/test/a0201d256f97c39d4f05-watermark-7.png': Duration: N/A, bitrate: N/A Stream #7:0: Video: png, rgb24, 1280x720 [SAR 72:72 DAR 16:9], 25 fps, 25 tbr, 25 tbn, 25 tbc [Parsed_blend_2 @ 0x1d8ce80] First input link top parameters (size 1280x720, SAR 5689:5669) do not match the corresponding second input link bottom parameters (1280x720, SAR 1:1) [Parsed_blend_2 @ 0x1d8ce80] Failed to configure output pad on Parsed_blend_2
Итак, я пытаюсь указать SAR в следующей команде:
ffmpeg -y -threads 2 -loop 1 -t 5 -i watermark-0.png -loop 1 -t 2.5 -i watermark-1.png -loop 1 -t 2.5 -iwatermark-2.png -loop 1 -t 2.5 -i watermark-3.png -loop 1 -t 2.5 -i4.png -loop 1 -t 2.5 -i watermark-5.png -loop 1 -t 2.5 -i watermark-6.png -loop 1 -t 2.5 -i watermark-7.png -filter_complex [0:v]setsar=1[sar0];[1:v][sar0]blend=all_expr='A*(if(gte(T,0.5),1,T/0.5))+B*(1-(if(gte(T,0.5),1,T/0.5)))'[b1v];[1:v]setsar=1[sar1];[2:v][sar1]blend=all_expr='A*(if(gte(T,0.5),1,T/0.5))+B*(1-(if(gte(T,0.5),1,T/0.5)))'[b2v];[2:v]setsar=1[sar2];[3:v][sar2]blend=all_expr='A*(if(gte(T,0.5),1,T/0.5))+B*(1-(if(gte(T,0.5),1,T/0.5)))'[b3v];[3:v]setsar=1[sar3];[4:v][sar3]blend=all_expr='A*(if(gte(T,0.5),1,T/0.5))+B*(1-(if(gte(T,0.5),1,T/0.5)))'[b4v];[4:v]setsar=1[sar4];[5:v][sar4]blend=all_expr='A*(if(gte(T,0.5),1,T/0.5))+B*(1-(if(gte(T,0.5),1,T/0.5)))'[b5v];[5:v]setsar=1[sar5];[6:v][sar5]blend=all_expr='A*(if(gte(T,0.5),1,T/0.5))+B*(1-(if(gte(T,0.5),1,T/0.5)))'[b6v];[6:v]setsar=1[sar6];[7:v][sar6]blend=all_expr='A*(if(gte(T,0.5),1,T/0.5))+B*(1-(if(gte(T,0.5),1,T/0.5)))'[b7v];[0:v][b1v][1:v][b2v][2:v][b3v][3:v][b4v][4:v][b5v][5:v][b6v][6:v][b7v][7:v]concat=n=15:v=1:a=0,format=yuv420p[v] -map [v] -c:v libx264 -r 120 -s 1280x720 -aspect 16:9 -crf 1 -preset ultrafast output.mp4
Но, я все равно получаю ту же ошибку: первые параметры верхнего уровня ввода (размер 1280×720, SAR 5689: 5669) не соответствуют соответствующим нижним параметрам второго входного канала (1280×720, SAR 1: 1)
Это первый вопрос. Вторая проблема заключается в том, что мне нужно заставить эту команду работать с фильтром zoompan, и я не знаю, где даже начать получать этот дополнительный фильтр для работы или куда поместить его в команду.
Помогите??
- Как выбрать левый аудиоканал с помощью ffmpeg и downmix для моно?
- Использование FFmpeg в .net?
- Как конвертировать видео в GIF, используя ffmpeg, с разумным качеством?
- использовать оболочку java-ffmpeg или просто использовать java runtime для выполнения ffmpeg?
- Ffmpeg: чрезвычайно точное извлечение видеосегментов
- Конкат два файла mp4 с ffmpeg без потери качества
- Постоянное исправление для видеозахвата Opencv
- FFmpeg - Обрезка и наложение - Заморозить рамку
Вы должны установить все SAR заранее. Таким образом, [1:v][sar0]blend=..
будет терпеть неудачу, потому что 1:v
все еще представляет другой SAR. [sar1][sar0]blend=..
"будет работать и так далее.
Это может быть проще сделать для отдельной команды для каждого входного изображения и использовать вывод:
ffmpeg -i watermark-5.png -vf setsar=1 watermark-5n.png