Я пробовал 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. И проблема в том, что у них нет одинакового аудиокодека (я так понимаю). Есть идеи?
Если вы хотите безопасно объединить два видео, вам необходимо изменить видеокодек и аудиокодек входных файлов на одни и те же кодеки.
Например, используя 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
С помощью этой команды вы можете создайте объединенный видеофайл.
Вы должны напечатать так:
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
Мне пришлось объединить три фрагмента видео с одинаковыми кодеками. Прочитав предыдущие ответы, мне удалось сделать это:
mencoder -ovc copy -oac faac 01.mp4 02.mp4 03.mp4 -o output.mp4
Гораздо быстрее и проще, чем Openshot!
Сначала я попробовал опцию «-oac copy», но похоже, что аудиокодек в моих видео это не позволяет. Я получил сообщение об ошибке с рекомендацией -oac pcm. Кодек PCM не очень хороший вариант: результирующий файл очень большой, и 2/3 его - несжатый звук.
Надеюсь, это поможет
Решение, которое я нашел здесь , помогло мне без потерь объединить два файла mp4:
sudo apt-get install gpac
MP4Box -cat part1.mp4 -cat part2.mp4 -new joinedfile.mp4
Я пытался использовать Avidemux, но у меня были проблемы со звуком в объединенном видео. 113]
Ваши файлы не будут правильно соединяться, потому что что-то не совпадает.
Как и у многих других, у меня были проблемы с правильной синхронизацией звука в объединенных видео. и хотя 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://trac.ffmpeg.org/wiki/Encode/AAC#fdk_cbr
Примечание: Насколько мне известно, другие форматы (контейнеры) имеют аналогичные ограничения для сопоставления размера кадра и скорости звука, поэтому это может работать и для avi, если вы попытаетесь соединиться через cat или mencoder после нормализации видео и аудио .
Необязательно: Используйте Ручной тормоз, чтобы перекодировать объединенный файл для меньшего размера, если это необходимо, с переменной частотой кадров и настройкой постоянного качества, равной 25 (предлагаемые настройки - отрегулируйте по мере необходимости для своего материала и ожидания качества)
Я смог использовать 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, и вы можете закрыть его, как только файлы будут объединены / объединены. Вы можете найти больше информации здесь .