Bagaimana saya bisa menggabungkan atau menggabungkan dua file MP4 atau lebih membuat file MP4 lain? [duplikat]


14

Bagaimana saya bisa menggabungkan atau menggabungkan 2 file MP4 atau lebih, dalam file MP4 keluaran akhir juga?

Saya telah mencoba di jendela DOS untuk menggunakan perintah COPY (saya telah membacanya di suatu tempat) tetapi tidak berfungsi dengan baik.


Lihat juga superuser.com/questions/43588/… untuk informasi lebih lanjut. Tidak yakin apakah saya akan mengklasifikasikan pertanyaan ini sebagai duplikat.
Terobosan

1
silakan tambahkan OS Anda sebagai tag.
tumchaaditya

Jawaban:


12

MP4Box dapat melakukan ini, meskipun Anda mungkin ingin menggunakan GUI untuk itu seperti YAMB atau GUI MP4Box Saya . (NB: Ini bukan program saya secara pribadi, itu hanya namanya.) Biner MP4Box untuk Windows tersedia dari situs ini .

Contoh:

MP4Box -tmp $HOME -add vid.01.m4v \
    -cat vid.02.m4v -cat vid.03.m4v vid-out.mp4

4

Saya akan merekomendasikan usind ffmpeg , yang tersedia untuk Mac OS X, Linux dan Windows .

Berikut ini contoh bagus tentang cara menggabungkan dua film: http://www.ffmpeg.org/faq.html#SEC27

Pada langkah terakhir, Anda hanya perlu memastikan Anda membuat wadah MP4, untuk file yang dihasilkan.


Ketika saya memahami jawaban FAQ ffmpeg yang diberikan, ini tidak dapat dilakukan dengan video MP4 (mungkin H.264), karena ini bukan salah satu dari "format istimewa".
ttarchala

@tartarala: Saya akan mencoba jika itu bisa dilakukan. Saya telah dikonversi ke MP4 dengan FFmpeg sebelumnya, tetapi tidak pernah menyatukan dua film. Juga: Saya ingin menunjukkan, bahwa FFmpeg memiliki perkembangan yang sangat cepat. Apa yang tidak berfungsi dengan satu versi, mungkin hanya berfungsi pada versi berikutnya.
polemon

1
Tidak semua build FFMPEG memiliki dukungan MP4. Untuk satu hal itu adalah teknologi yang dipatenkan dan bisa dibilang ilegal untuk mendistribusikan encoders MP4 di AS tanpa membayar biaya. Namun, banyak bangunan dapat melakukan ini.
CarlF

@CarlF: Untuk Linux dan Mac OS X, ini bukan masalah, sungguh. Kode dapat didistribusikan secara bebas, jadi pada dasarnya, siapa pun yang membangun FFmpeg sendiri, semuanya baik. Mengenai paten, saya ingin membagikan komentar: Saya tidak akan menemukan situs itu saat ini, tetapi paten pertama yang kedaluwarsa untuk AAC (yang sebagian didefinisikan dalam MPEG-4), ada pada tahun 2022. Dan itu hanya yang pertama, ada banyak lagi yang perlu kedaluwarsa sampai benar-benar legal ...
polemon

4

Anda dapat mencoba melakukan ini dengan 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

Ini tidak menyandikan ulang apa pun, itu menempatkannya dalam wadah aliran transportasi baru, yang membuatnya lebih mudah untuk digabungkan, dan kemudian menggabungkannya kembali ke MP4. Jika output.mp4 sudah ada, perintah akan gagal. Versi di atas menggunakan pipa bernama, itu Anda berada di sistem yang tidak mendukung orang-orang Anda harus menggunakan file perantara:

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

bagaimana jika itu bukan h264 tetapi mpeg4?
Edison

2

Pembaruan: Baru saja memeriksa avidemux ketika saya menginstalnya, setelah membaca jawaban lainnya. Itu yang Anda cari (tidak berpikir itu bisa melakukan MP4 karena namanya ...).

Saya pikir VirtualDubMod adalah mp4-mampu, saya tidak menggunakannya jadi saya tidak yakin.

Anda mungkin ingin memeriksa MeGUI . Ini adalah aplikasi dan alat yang agak rumit dan kaya fitur.

Alat untuk menanamkan dalam wadah (mp4 dalam kasus Anda) disebut muxer, yang orang mungkin tidak bisa menyatukannya.

Anda dapat menggunakannya dalam kombinasi dengan VirtualDub. Virtualdub untuk menyatukan stream video, dan muxer untuk menjadikannya mp4 lagi (tanpa harus memasukkan ulang kode).


1

Saya melakukannya dengan mencoder, setelah mengkonversikannya ke avi dengan ffmpeg

inilah skrip sederhana, dengan asumsi Anda memiliki 15 file, bernama 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

Bersulang


1

Inilah perintahnya:

ffmpeg -i concat:"video1.ts|video2.ts"

Apakah karakter pipa itu perlu diloloskan? Atau apakah saya salah membaca perintah itu?
killermist

itu perlu diloloskan. oops.
rogerdpack
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.