Поиск по этому блогу

24 марта 2013

Объединение mp4 без конвертации с помощью ffmpeg

На основе решений из инета, многие из которых устарели и нуждаются в некоторых мелких корректировках.

Входные файлы MOV1.mp4 и MOV2.mp4 имеют полностью одинаковые параметры, в частности AVC(он же H.264)+AAC.

ffmpeg 0.8.5

Конвертим файлы в MPEG-TS (делается довольно быстро):
ffmpeg -i MOV1.mp4 -acodec copy -vcodec copy -vbsf h264_mp4toannexb -f mpegts mov1.ts
Второй файл так же.

Теперь собственно склеиваем в файл output.mp4:
ffmpeg -i "concat:mov1.ts|mov2.ts" -vcodec copy -acodec copy output.mp4
Готово. 

10 комментариев:

  1. Анонимный04 мая, 2013 17:38

    все работает, спасибо. единственное нельзя указать произвольное расположение исходных файлов (mov1.ts, mov2.ts) в: ffmpeg -i "concat:mov1.ts|mov2.ts" -vcodec copy -acodec copy output.mp4
    (или я просто не знаю как это сделать)

    Короче я сделал так:

    ffmpeg -f concat -i input.list -y -vcodec copy -acodec copy output.mp4

    файл input.list внутри содержит строки:

    file 'd:/tempffmpeg/mov1.ts'
    file 'd:/tempffmpeg/mov2.ts'


    все работает...

    ОтветитьУдалить
  2. Анонимный21 мая, 2013 14:35

    ffmpeg -i concat:"part1.mp4|part2.mp4" -c copy part-ok.mp4

    Не желает объединять, делает part-ok.mp4 = part1.mp4
    Это я создаю bat-файл и его запускаю. Если вписываю строчку cat part1.mp4 part2.mp4 | ffmpeg –f mp4 –i - -sameq part-ok.mp4 то система пишет "что такое CAT" если пишу ffmpeg cat part1.mp4 part2...., то отвечает "cat - ошибка"

    ОтветитьУдалить
  3. Анонимный21 мая, 2013 14:44

    Все, разобрался! ffmpeg склеивает только .ts и .mpg Для склейки любого видео лучше использовать MKVtoolnix (http://www.bunkus.org/videotools/mkvtoolnix/downloads.html), после чего с помощью ffmpeg кодировать в .mp4 =)

    ОтветитьУдалить
  4. Анонимный21 мая, 2013 21:21

    ... а в конце-концов разобрался и написал гуй dfiles точка-ру "/files/nd2mlqvm6" Правда все мешает в кашу, но это уже сам ffmpeg=)))

    ОтветитьУдалить
  5. Анонимный22 мая, 2013 14:21

    Обновленная версия "files.mail.ru/0C96EC7882BD405FAEDDD5BE9842E64B" пролежит месяц (до 22.06.2013), скачивайте. Строка получается такая: ffmpeg -i concat:"VTS_01_1.VOB|VTS_01_2.VOB|VTS_01_3.VOB" -vcodec h264 -vf yadif=0 -crf 23 -threads 2 -acodec libvo_aacenc -ab 160k -ac 2 -f mp4 -y dvdrip.mp4

    ОтветитьУдалить
  6. Я H264 делал так: http://plutov.by/post/html5_ffmpeg

    ОтветитьУдалить
  7. Анонимный19 января, 2014 12:19

    MP4 Joiner-программа бесплатная. Если суммарное ВРЕМЯ конечного файла не совпадёт по продолжительности с кусками-прогоните суммарный файл через Yamb.

    ОтветитьУдалить
  8. Анонимный30 января, 2018 17:40

    Тю, я думал ffmpeg по ярче будет. В общем-то *.ts очень не плохо и через copy /b 1.ts + 2.ts + ... + n.ts out.ts
    безо всяких ffmpeg клеются. Потом уже получившийся ts можно пропустить через ffmpeg

    ОтветитьУдалить
  9. Смотрите мою релизацию https://github.com/bogdik/mp4joiner

    ОтветитьУдалить