Как объединить видео файлы с терминала?

Я пробовал avidemux2_cli, mencoder, ffmpeg, cat ... Но это не всегда работает (в большинстве случаев ошибка заключается в том, что аудиокодек не совпадает) Может быть, я поставил неправильные опции в командах.

Итак, команды:

cat Sample.avi rrr.avi > complete.avi
ffmpeg -i Sample.avi -i output.avi -vcodec copy -acodec copy complete.avi
mencoder -ovc lavc -oac copy Sample.avi rrr.avi -o complete.avi
avidemux2_cli --audio-codec copy --video-codec copy --output-format avi --load Sample.avi -append output.avi --save video.avi

Проблема с кошкой в ​​том, что она не показывает ошибку, но не всегда работает ... Как и complete.avi будет точно таким же, как и Sample.avi.

Fmmpeg ничего не делает. Файл complete.avi всегда одинаков с Sample.avi

Ошибка Mencoder: все файлы должны иметь одинаковый аудиокодек и формат для -oac-копии. Таким образом, файл complete.avi совпадает с Sample.avi

avidemux2_cli, ошибки нет, но файл complete.avi снова совпадает с Sample.avi ..

Итак, подведем итог: все complete.avi одинаковы с Sample.avi. И проблема в том, что у них нет одинакового аудиокодека (я так понимаю). Есть идеи?

9
задан 8 July 2012 в 21:16

6 ответов

Если вы хотите безопасно объединить два видео, вам необходимо изменить видеокодек и аудиокодек входных файлов на одни и те же кодеки.

Например, используя xvid (видеокодек) и mp3lame (аудиокодек):

sudo apt-get install mencoder libxvidcore4 libmp3lame0

вы можете кодировать входные видео с помощью следующих команд:

mencoder -ovc xvid -oac mp3lame -xvidencopts bitrate=1000 first.avi -o video1.avi
mencoder -ovc xvid -oac mp3lame -xvidencopts bitrate=1000 second.avi -o video2.avi

подходя к вашим видео, вы можете изменить параметры «битрейт» и т. д. (а также кодеки).

Если закодированные имена видео - «video1.avi» и «video2.avi», а имя выходного видео - «join-video.avi»,

mencoder -ovc copy -oac mp3lame video1.avi video2.avi -o joined-video.avi 

С помощью этой команды вы можете создайте объединенный видеофайл.

0
ответ дан 8 July 2012 в 21:16

Вы должны напечатать так:

avidemux2_cli --audio-codec copy --video-codec copy --output-format avi --load Sample.avi --append output.avi --save video.avi

Если вы хотите добавить больше файлов:

avidemux2_cli --audio-codec copy --video-codec copy --output-format avi --load Sample.avi --append output1.avi --append output2.avi --append output3.avi --save video.avi
0
ответ дан 8 July 2012 в 21:16

Мне пришлось объединить три фрагмента видео с одинаковыми кодеками. Прочитав предыдущие ответы, мне удалось сделать это:

mencoder -ovc copy -oac faac 01.mp4 02.mp4 03.mp4 -o output.mp4

Гораздо быстрее и проще, чем Openshot!

Сначала я попробовал опцию «-oac copy», но похоже, что аудиокодек в моих видео это не позволяет. Я получил сообщение об ошибке с рекомендацией -oac pcm. Кодек PCM не очень хороший вариант: результирующий файл очень большой, и 2/3 его - несжатый звук.

Надеюсь, это поможет

0
ответ дан 8 July 2012 в 21:16

Решение, которое я нашел здесь , помогло мне без потерь объединить два файла mp4:

sudo apt-get install gpac
MP4Box -cat part1.mp4 -cat part2.mp4 -new joinedfile.mp4

Я пытался использовать Avidemux, но у меня были проблемы со звуком в объединенном видео. 113]

0
ответ дан 8 July 2012 в 21:16

Ваши файлы не будут правильно соединяться, потому что что-то не совпадает.

Как и у многих других, у меня были проблемы с правильной синхронизацией звука в объединенных видео. и хотя MP4Box работает нормально, если клипы имеют идентичные спецификации, в некоторых случаях я был бы поражен «Не найден подходящий трек назначения - создается новый», и в этом случае Totem (он-лайн видео) не воспроизводил этот сегмент в объединенном файле. После некоторых проб и ошибок и дальнейших исследований я разработал следующий метод для объединения видео, который до сих пор работал каждый раз с приемлемым (для меня) качеством.

Если размеры кадра не совпадают ( ошибки объединения, относящиеся к видеодорожкам):

Нормализовать видео без прерывания звука (-c: копия), установив ограничения (делимые на 8 для максимальной совместимости с кодеками) для несопоставленных сегментов

Примеры команд

width=856

height=480

avconv -i input.mp4 -filter:v "scale=iw*min($width/iw\,$height/ih):ih*min($width/iw\,$height/ih), pad=$width:$height:($width-iw*min($width/iw\,$height/ih))/2:($height-ih*min($width/iw\,$height/ih))/2" -c:a copy output.mp4

Если аудио не совпадает (объединяются ошибки, относящиеся к аудио дорожки):

Нормализовать звук

Обрабатывать звук без прерывания видео (c: v copy), чтобы все клипы соответствовали желаемому c odec, частота и битрейт с c: кодек -ar частота, такая как -ar 48000, и и битрейт с b: 128k для стерео (64K на канал кажется хорошей целью) или что-либо совпадает.

Пример: avconv -i input.mp4 -c:v copy -c:a libmp3lame -ar 48000 b:a 128k output.mp4 (обратите внимание, что libmp3lame является кодеком для аудио в формате mp3) Вы можете получить список кодеров, поддерживаемых avconv, введя команду avconv -codecs или сузить список до конкретного кодированного кода avconv -codecs|grep *codecname*, например avconv -codecs|grep mp3

Теперь, когда мы нормализовали файлы, мы можем присоединиться к ним. В этом примере я объединю файлы с MP4Box. Если у вас его нет, вы можете получить его, введя команду sudo apt-get install gpac

Соедините файлы с помощью команды MP4Box file1.mp4 -cat file2.mp4 -cat file3.mp4 -cat file4.mp4 -out joinedfile.mp4 (обратите внимание, что нет кота перед первым файлом, и каждому дополнительному файлу предшествует by -cat и целевому файлу предшествует -out)

Если вы используете MP4Box (рекомендуется для MP4) для объединения, вы можете обнаружить, что вам нужно обработать все клипы с помощью avconv независимо от того, соответствуют ли спецификации спецификациям или нет ошибка «Не найдена подходящая дорожка назначения - создается новая (введите видео)»

Примечание. Я обнаружил, что у Avidemux возникают проблемы с видео, закодированными с использованием файлов H.264 / AVC (на тотем), из-за B-кадры в качестве ссылки. Похоже, что это приводит к несинхронизации звука при объединении, даже если вы решили скопировать аудио и видео без использования remux. Сбои, если не выбран безопасный режим и не синхронизированы при использовании безопасного режима

Источники:

https://superuser.com/questions/547296/resizing -videos-with-ffmpeg-avconv-to-fit-to-static-player-размер

https://stackoverflow.com/questions/20703160/problems-with-setting- постоянный битрейт с помощью avconv

https://trac.ffmpeg.org/wiki/Encode/AAC#fdk_cbr

Примечание: Насколько мне известно, другие форматы (контейнеры) имеют аналогичные ограничения для сопоставления размера кадра и скорости звука, поэтому это может работать и для avi, если вы попытаетесь соединиться через cat или mencoder после нормализации видео и аудио .

Необязательно: Используйте Ручной тормоз, чтобы перекодировать объединенный файл для меньшего размера, если это необходимо, с переменной частотой кадров и настройкой постоянного качества, равной 25 (предлагаемые настройки - отрегулируйте по мере необходимости для своего материала и ожидания качества)

0
ответ дан 8 July 2012 в 21:16

Я смог использовать VLC Media Player для объединения / объединения нескольких видеофайлов. VLC можно загрузить из программного обеспечения Ubuntu или установить его с терминала, нажав Ctrl + Alt + T и введя:

sudo apt update
sudo apt install vlc

После установки VLC откройте терминал в папку с видеофайлами, а затем введите:

vlc InFile1.mp4 InFile2.mp4 --sout "#gather:std{access=file,dst=OutFile.mp4}" --sout-keep

Это открывает графический интерфейс VLC, и вы можете закрыть его, как только файлы будут объединены / объединены. Вы можете найти больше информации здесь .

0
ответ дан 8 July 2012 в 21:16

Другие вопросы по тегам:

Похожие вопросы: