Narzędzie terminalowe do dołączania do filmów MP4

14

Chciałbym dołączyć do filmów MP4, tak jak dołączam do plików pdf pdfjoin.

Czy jest jakieś domyślne narzędzie do dołączania filmów?

Léo Léopold Hertz 준영
źródło

Odpowiedzi:

15

Tak, możesz połączyć wiele filmów w jeden plik, używając domyślnych poleceń terminala. Korzystanie z prostego catbędzie ci potrzebne.

cat video1.avi video2.avi videon.avi > output.avi

Jest duży, ale tutaj - ta metoda wypisze nagłówek video1.avi na output.avi. Dlatego nagłówek output.avi jest taki sam jak video1.avi, więc na większości odtwarzaczy wideo będzie wyglądać, jakby utracono video2.avi i videon.avi - źródło 1 , źródło 2 .

Aby to naprawić, potrzebujesz dodatkowych narzędzi. Istnieje wiele innych narzędzi terminalowych do łączenia filmów, które również aktualizują nagłówek. Najbardziej znanymi narzędziami do edycji wideo są mencoder (który jest częścią MPlayera) i ffmpeg . Oba mają ogromną liczbę opcji i ustawień i poza tym forum jest wchodzenie w wiele szczegółów, ale dam krótkie polecenia poniżej.

Zastosowanie i instalacja mencodera lub ffmpeg może być zastraszająca, ale możliwości edycji wideo są najmocniejsze, jakie do tej pory spotkałem. Ponieważ instalacja ze źródła może być kłopotliwa dla rodzimych użytkowników OS X, radzę używać Homebrew .

Aby zainstalować te narzędzia za pomocą Homebrew , uruchom ten jeden liner w swoim terminalu:

ruby -e "$(curl -fsSL https://raw.github.com/mxcl/homebrew/go)"

Homebrew jest teraz zainstalowany, dobrze jest postępować zgodnie z sugestiami instalatora po instalacji. Teraz instalujemy ffmpeg i mencoder za pomocą brew.

brew install ffmpeg mplayer

Teraz możemy użyć mencodera do połączenia dwóch filmów:

mencoder -oac copy -ovc copy -idx -o output.mp4 video1.mp4 video2.mp4 video3.mp4

Lub możemy użyć ffmpeg do scalenia dwóch filmów:

 ffmpeg -i concat:"video1.mp4|video2.mp4" -codec copy output.mp4

W szczególności pytasz o pliki .mp4. mp4jest formatem kontenera, możliwe jest, że domyślna instalacja ffmpeglub mencoderbrak domyślnych poprawnych pakietów kodowania / dekodowania („kodeków”) i że trzeba je zainstalować osobno. Ale to wykracza poza zakres tego tematu.

Kuzyn Kokaina
źródło
Pamiętaj, że być może trzeba będzie uciec od znaku „|” co jest specjalne dla wielu powłok, więc ffmpeg -i concat: video1.mp4 \ | video2.mp4
CousinCocaine
2
Używanie pojedynczych cudzysłowów ('') może być łatwiejsze niż unikanie znaku potoku. W poleceniu użytym w odpowiedzi nie ma to żadnego znaczenia.
nohillside
Bardzo dobra odpowiedź z jasnym wyjaśnieniem. Dziękuję Ci!
Léo Léopold Hertz
2
Próbowałem zainstalować Homebrew za pomocą polecenia terminalu, jak opisano w tej odpowiedzi i otrzymałem "The requested URL returned error: 400 Bad Request". Zgodnie ze stroną Homebrew , nowe polecenie terminalu to/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
Sparky,
@Sparky przejdź do brew.shinstrukcji instalacji.
CousinCocaine