Иногда нужно склеить несколько видео-файлов (с одинаковым разрешением и битрейтом) в один. Например несколько серий любимого сериала или фильм на двух CD. Для avi и mpeg в Linux процедура описана далее.
Логично предположить, что нам нужно объеденить файлы:
root@localhost:~$ cat fille01.avi file02.avi file03.avi > file00.avi
Если попытаться открыть итоговый файл медиаплеером — ничего хорошего не получится. Дело в том, что мы просто склеили файлы, теперь нужно перестроить индекс, в этом нам поможет mencoder:
root@localhost:~$ mencoder -forceidx -oac copy -ovc copy file00.avi -o file.avi
Полученный на выходе файл готов к употреблению.
5 комментариев “Склеить несколько видео-файлов в Linux”
Такой же командой склеил ролики *.mp4 (25 штук по 5 минут каждый)
Открываю конечный файл — по объёму он такой же, как все 5 минутные ролики вместе взятые, а длина — всего 5 минут. Это происходит из-за формата mp4?
Просто склеить видео-файлы через cat не получится, именно поэтому есть второй этап с mencoder -forceidx. Насчет дружбы контейнера mp4 и mencoder сказать ничего не могу, проверять не на чем. Может быть использовать mp4box будет правильнее.
Да, про второй этап я не забыл, просто не написал про него. Видимо, дело в формате mp4.
После конвертирования исходников в avi и повторения команд проблема решилась.
Спасибо за добротную инструкцию :-)
Зная как работает cat я с ужасом представляю ту мешанину контейнеров, которая в итоге получится. А еще, у меня ощущение, что со склеенным таким образом файлом будет еще проблем куча. Avidemux же есть, для таких целей самое то.
Да нету никаких проблем :) Avidemux конечно рулит, но если нет Х-ов, мне лично проще вырезать гланды таким путем.