2009-09-18 22:20:24 +0000 2009-09-18 22:20:24 +0000
51
51

Jak mogę połączyć dwa pliki mp4 bez utraty jakości?

Mam dwa wysokiej jakości pliki mp4, które są z dwóch części tego samego show.

Chcę połączyć je razem w jeden plik i zazwyczaj używam VirtualDub do połączenia plików… Ale wydaje się, że nie obsługuje on mp4.

Jakie są dostępne alternatywy (szczególnie te, które nie wymagają ponownego kodowania)?

Odpowiedzi (7)

41
41
41
2009-09-19 12:05:18 +0000

Zazwyczaj używam VirtualDub do łączenia moich plików, ale nie wydaje się, aby wspierał mp4. Więc jakie są alternatywy? Avidemux . To tak jak VirtualDub, tylko z większą ilością obsługiwanych formatów i wbudowanych kodeków i filtrów. Zawsze używam go w preferencjach; łączy się z plikami AVC+AAC.MP4 (bez przekodowania) w porządku dla mnie.

Aby dołączyć do nich w AviDemuxie:

  1. File -> Open -> Select File
  2. File -> Append -> Select File
  3. Ustaw wszystko na Kopiuj
  4. Plik -> Save -> FileName
  5. Czekaj…

Według forów AViDemux ten proces łączenia jest bezstratny http://www.avidemux.org/smf/index.php?topic=9467.0 ).

29
29
29
2012-12-21 16:39:48 +0000

Można to zrobić za pomocą ffmpeg:

mkfifo temp0 temp1
ffmpeg -i input0.mp4 -c copy -bsf:v h264_mp4toannexb -f mpegts -y temp0 2> /dev/null & \
ffmpeg -i input1.mp4 -c copy -bsf:v h264_mp4toannexb -f mpegts -y temp1 2> /dev/null & \
ffmpeg -f mpegts -i "concat:temp0|temp1" -c copy -absf aac_adtstoasc output.mp4

To nie koduje niczego ponownie, tylko umieszcza je w nowym kontenerze strumienia transportowego, co ułatwia ich łączenie, a następnie łączy je z powrotem w MP4. Jeśli output.mp4 już istnieje, komenda zawiedzie. Powyższa wersja używa nazwanych potoków, jeśli jesteś w systemie, który nie obsługuje tych, które musiałyby używać plików pośrednich (np. windows):

ffmpeg -i input0.mp4 -c copy -bsf:v h264_mp4toannexb temp0.ts
ffmpeg -i input1.mp4 -c copy -bsf:v h264_mp4toannexb temp1.ts
ffmpeg -i "concat:temp0.ts|temp1.ts" -c copy -bsf:a aac_adtstoasc output.mp4
15
15
15
2014-03-02 01:54:46 +0000

Concat demuxer

Concat demuxer został dodany do ffmpeg 1.1. Jeśli Twoja wersja ffmpeg jest zbyt stara, get the latest static binary from here: http://www.ffmpeg.org/download.html

Instrukcje

Utwórz plik mylist.txt z wszystkimi plikami, które chcesz połączyć w następującej formie (Linie zaczynające się od myślnika są ignorowane):

# this is a comment
file '/path/to/file1'
file '/path/to/file2'
file '/path/to/file3'

Zauważ, że mogą to być ścieżki względne lub bezwzględne. Następnie można zakodować pliki za pomocą:

ffmpeg -f concat -i mylist.txt -c copy output

Możliwe jest wygenerowanie tego pliku listy z bash for loop, lub za pomocą printf. Albo jeden z poniższych sposobów wygeneruje plik z listą zawierający każde *.wav w katalogu roboczym:

for f in ./*.wav; do echo "file '$f'" >> mylist.txt; done
printf "file '%s'\n" ./*.wav > mylist.txt

Źródło: ffmpeg wiki

8
8
8
2009-09-18 23:09:39 +0000

(http://www.videohelp.com/tools/YAMB) wraz z MP4BOX to dobra opcja. Pobierz oba pliki i rozpakuj je (nie wymagają instalacji i razem mają około 5MB), w YAMB wybierz Ustawienia i ustaw ścieżkę dostępu do folderu MP4box. Aby dołączyć do plików mp4 wybierz Edycja > Kliknij aby dołączyć do obsługiwanych…

5
5
5
2009-09-19 11:08:12 +0000

Spróbuj użyć kontenera wideo Matroska.

Po pierwsze, potrzebujesz mkvtoolnix . Pobierz i zainstaluj go, następnie musisz uruchomić mkvmerge GUI (chyba, że lubisz narzędzia z linii poleceń, co mi odpowiada - chociaż możesz zajrzeć do sekcji linkowania plików z dokumentacji mkvmerge ).

Dodaj pierwszy plik klikając “add”. Następnie kliknij na “dodaj” i otwórz drugi plik. Ustaw plik wyjściowy, kliknij “Start muxing” na dole, a następnie odejdź!

Jeśli kontener nie jest odpowiedni dla Twoich potrzeb, możesz go ponownie zakodować lub spróbować przekonwertować do innego formatu… Chociaż MKV jest bardzo ładnym kontenerem!

1
1
1
2009-09-18 22:24:57 +0000

Jeśli możesz je odtwarzać w systemie / mieć zainstalowany kodek, Windows Movie Maker może być najszybszym (i darmowym) sposobem na połączenie tych dwóch plików. Następnie można użyć Virtualdub do konwersji do innego formatu.

1
1
1
2009-09-19 11:46:02 +0000

Innym rozwiązaniem jest Open Video Joiner . Robi też efekty przejściowe.