Jak mogę połączyć lub scalić 2 lub więcej plików MP4, również w końcowym pliku wyjściowym MP4?
Próbowałem w oknie DOS użyć polecenia KOPIUJ (gdzieś to przeczytałem), ale to nie działa dobrze.
Jak mogę połączyć lub scalić 2 lub więcej plików MP4, również w końcowym pliku wyjściowym MP4?
Próbowałem w oknie DOS użyć polecenia KOPIUJ (gdzieś to przeczytałem), ale to nie działa dobrze.
Odpowiedzi:
MP4Box może to zrobić, chociaż możesz chcieć użyć do tego GUI, takiego jak YAMB lub My MP4Box GUI . (Uwaga: To nie jest mój program osobiście, to tylko nazwa.) Pliki binarne MP4Box dla Windows są dostępne z tej strony .
Przykład:
MP4Box -tmp $HOME -add vid.01.m4v \
-cat vid.02.m4v -cat vid.03.m4v vid-out.mp4
Polecam skorzystanie z ffmpeg , która jest dostępna dla systemów Mac OS X, Linux i Windows .
Oto dobry przykład połączenia dwóch filmów: http://www.ffmpeg.org/faq.html#SEC27
W ostatnim kroku musisz tylko zrobić kontener MP4 dla pliku wynikowego.
Możesz spróbować to zrobić za pomocą 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
To niczego nie koduje ponownie, umieszcza je w nowym kontenerze strumienia transportowego, co ułatwia ich konkatenację, a następnie konkatenuje je z powrotem do MP4. Jeśli output.mp4 już istnieje, polecenie zakończy się niepowodzeniem. Powyższa wersja używa nazwanych potoków, jeśli korzystasz z systemu, który nie obsługuje plików pośrednich:
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
Aktualizacja: Właśnie sprawdziłem avidemux, gdy go zainstalowałem, po przeczytaniu innej odpowiedzi. To jest to, czego szukasz (nie sądziłem, że może zrobić MP4 z powodu swojej nazwy…).
Myślę, że VirtualDubMod jest w stanie obsługiwać mp4, chociaż go nie użyłem, więc na pewno nie wiem.
Może chcesz sprawdzić MeGUI . Jest to dość złożona i bogata w funkcje aplikacja i narzędzia.
Narzędzie do osadzania w kontenerze (w twoim przypadku mp4) nazywa się multiplekserem, ale prawdopodobnie nie można ich połączyć.
Możesz używać go w połączeniu z VirtualDub. Virtualdub do konkatenacji strumieni wideo i multiplekser, aby uczynić go ponownie mp4 (bez konieczności ponownego kodowania).
Robię to za pomocą mencodera, po przekonwertowaniu ich na avi za pomocą ffmpeg
oto prosty skrypt, zakładając, że masz 15 plików o nazwie 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
Twoje zdrowie
Oto polecenie:
ffmpeg -i concat:"video1.ts|video2.ts"