Скажем, у меня есть 3 видеофайла и 2 аудиофайла: v1.mp4
, v2.mp4
, v3.mp4
, a2.mp3
, a1.mp3
.
Обычно каждый хочет "наложить" аудио на видео.
Что если кто-то действительно хочет следующее;
- v1 играет, без звука
- a1 проигрывает аудио, нет видео
- v2 играет, без звука
- a2 проигрывает аудио, нет видео
- v3 воспроизводит видео, без звука
Все объединено в одном mp4. Мои попытки с треском провалились: либо аудио, объединенное в видео, либо поврежденное видео, либо длительное время кодирования.
В конце я хочу объединить эти видеопотоки вместе с "промежуточными" частями, которые являются пустыми и не имеют видео. я пытался
Сложный фильтр с
color=black
конкатенации. Работает, но перекодирует и очень медленноffmpeg -i 1.mp4 -i 2.mp4 -i 3.mp4 -filter_complex " color=black:s=1280x720:d=5[s1]; color=black:s=1280x720:d=10[s2]; color=black:s=1280x720:d=15[s3]; [0:v][s1][1:v][s2][2:v][s3]concat=n=6:v=1:a=0[aout]" -map [aout] -y output.mp4
Создайте группу
color=black
mp4 с нуля и используйте файл слияния. Видео становится зеленым и жалуется на сроки.ffmpeg -t 60 -s 640x480 -f rawvideo -pix_fmt rgb24 -r 25 -i /dev/zero empty.mpeg ffmpeg -f concat -i mylist.txt -c copy test.mp4
(список в основном 1.mp4
, empty.mp4
, 2.mp4
, empty.mp4
, 3.mp4
)
Создайте кучу mp3-файлов с тишиной и объедините их вместе.
ffmpeg -f concat -i mylist.txt -c copy test.mp4
(но mylist содержит файлы silence.mp3
вместо empty.mp4
между каждым)