Як я можу об'єднати або об'єднати 2 або більше файлів MP4 у кінцевий вихідний MP4-файл?
Я спробував у вікні DOS використовувати команду COPY (я її десь прочитав), але вона не працює добре.
Як я можу об'єднати або об'єднати 2 або більше файлів MP4 у кінцевий вихідний MP4-файл?
Я спробував у вікні DOS використовувати команду COPY (я її десь прочитав), але вона не працює добре.
Відповіді:
MP4Box може це зробити, хоча ви можете використовувати GUI для нього, як YAMB або My MP4Box GUI . (NB: Це не моя програма особисто, це лише назва.) Бінарні файли MP4Box для Windows доступні на цьому веб-сайті .
Приклад:
MP4Box -tmp $HOME -add vid.01.m4v \
-cat vid.02.m4v -cat vid.03.m4v vid-out.mp4
Я рекомендую usind ffmpeg , який доступний для Mac OS X, Linux та Windows .
Ось хороший приклад того, як об'єднати два фільми: http://www.ffmpeg.org/faq.html#SEC27
На останньому кроці потрібно просто переконатися, що ви зробили контейнер MP4, для отриманого файлу.
Ви можете спробувати це зробити за допомогою ffmpeg:
mkfifo temp0 temp1
ffmpeg -i input0.mp4 -c copy -bsf h264_mp4toannexb -f mpegts -y temp0 2> /dev/null & \
ffmpeg -i input1.mp4 -c copy -bsf h264_mp4toannexb -f mpegts -y temp1 2> /dev/null & \
ffmpeg -f mpegts -i "concat:temp0|temp1" -c copy -absf aac_adtstoasc output.mp4
Це нічого не перекодує, він розміщує їх у новому контейнері транспортного потоку, що полегшує їх об'єднання, а потім об'єднує їх у MP4. Якщо output.mp4 вже існує, команда не вдасться. У наведеній вище версії використовуються іменовані канали, ви працюєте в системі, яка не підтримує тих, з якими вам доведеться використовувати проміжні файли:
ffmpeg -i input0.mp4 -c copy -bsf h264_mp4toannexb temp0.ts
ffmpeg -i input1.mp4 -c copy -bsf h264_mp4toannexb temp1.ts
ffmpeg -i "concat:temp0.ts|temp1.ts" -c copy -absf aac_adtstoasc output.mp4
Оновлення: Просто перевірив avidemux, як я його встановив, прочитавши цю іншу відповідь. Це те, що ви шукаєте (не думав, що він може робити MP4 через свою назву…).
Я думаю, що VirtualDubMod здатний на mp4, я не користувався ним, хоча не знаю точно.
Ви можете перевірити MeGUI . Це досить складне та багатофункціональне додаток та інструменти.
Інструмент для вбудовування в контейнер (mp4 у вашому випадку) називається muxer, який, мабуть, не може їх об'єднати.
Ви можете використовувати його в поєднанні з VirtualDub. Virtualdub для об'єднання відеопотоків та muxer, щоб зробити його mp4 знову (без необхідності повторного кодування).
Я роблю це з mencoder, після того як перетворив їх у avi з ffmpeg
ось простий скрипт, якщо припустити, що у вас є 15 файлів, названих 01.mp4 ... 15.mp4
#!/bin/bash
for j in `seq -w 1 15`;
do
echo converting file $j.avi
ffmpeg -i $j.mp4 $j.avi
echo adding file $j.avi to list
z="$z $j.avi"
done
echo doing append
mencoder -oac copy -ovc copy $z -o all.avi
ура
Ось команда:
ffmpeg -i concat:"video1.ts|video2.ts"