У меня разные видео форматы (в основном .mkv
, но также .wmv
и .mp4
). Можно ли объединить эти разные форматы в одном видео с помощью командной строки?
Я использую безголовый сервер на базе Ubuntu 14.04 x64.
Да, это возможно. Если используемый кодек отличается, этот шаг также включает в себя транскодирование. Если это то же самое, то содержимое просто копируется. Подробное руководство можно найти здесь: https://trac.ffmpeg.org/wiki/Concatenate
ffmpeg -i video1.mov -i video2.mkv -filter_complex "[0:v:0] [0:a:0] [1:v:0] [1:a:0] concat=n=2:v=1:a=1 [v] [a]" -map "[v]" -map "[a]" -c:v libx264 output.mp4
Если у вас есть больше файлов, вам нужно отобразить их в разделе аргументов filter_complex
(то есть ... [2:v:0] [2:a:0] [3:v:0] и т.д.)
Из документов:
n = 2 говорит фильтру, что есть два входных файла; v = 1 говорит о том, что будет один видеопоток; a = 1 говорит о том, что будет один аудиопоток. [v] и [a] являются именами выходных потоков, которые позволяют оставшейся части строки ffmpeg использовать выходные данные фильтра concat.