Bagaimana saya bisa menggabungkan dua file mp4 tanpa kehilangan kualitas?

51

Saya memiliki dua file mp4 berkualitas tinggi, yang merupakan dua bagian dari pertunjukan yang sama.

Saya ingin menggabungkan mereka menjadi 1 file, dan saya biasanya menggunakan VirtualDub untuk menggabungkan file saya ... Tetapi sepertinya tidak mendukung mp4.

Alternatif apa yang tersedia (terutama yang tidak memerlukan pengkodean ulang)?

Paolo Bergantino
sumber

Jawaban:

41

Saya biasanya menggunakan VirtualDub untuk menggabungkan file saya, tetapi tampaknya tidak mendukung mp4. Jadi alternatif apa yang ada?

Avidemux . Sama seperti VirtualDub, hanya dengan lebih banyak format yang didukung dan built-in codec dan filter. Saya selalu menggunakannya dalam preferensi; itu bergabung dengan file AVC + AAC.MP4 (tanpa pengodean ulang) baik untuk saya.

Untuk bergabung dengan mereka di AviDemux:

  1. File -> Buka -> Pilih File
  2. File -> Tambah -> Pilih File
  3. Setel semua untuk Menyalin
  4. File -> Simpan -> Nama File
  5. Tunggu..

Menurut forum AViDemux, proses bergabung ini tanpa kerugian ( http://www.avidemux.org/smf/index.php?topic=9467.0 )

bobince
sumber
ya, tampaknya sangat baik menjaga audio tetap sinkron dengan video sedangkan jawaban orang lain atas pertanyaan ini dipertanyakan pada IMHO itu.
Djangofan
1
Saya mencoba menggunakan Avidemux untuk menggabungkan dua file bersama tetapi audionya menjadi tidak sinkron.
GiddyUpHorsey
Anda bisa mendapatkan masalah sinkronisasi ketika jumlah materi audio yang tersedia tidak cocok dengan panjang frame video, atau ada aliran korupsi. Anda mungkin dapat memperbaikinya dengan fitur 'stream fix' dari VideoRedo atau ProjectX.
bobince
1
Tetapi metode ini berhasil: superuser.com/a/255566/1780 Hore!
Christopher Galpin
4
Jika Anda menggunakan AviDemux untuk bergabung dengan dua file Mp4, jangan lupa untuk memilih opsi Mp4 Demux di sudut kiri bawah. Kalau tidak, ia dapat mencoba mengubahnya menjadi avi!
28

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

Ini tidak menyandikan ulang apa pun, itu menempatkannya dalam wadah aliran transportasi baru, yang membuatnya lebih mudah untuk digabungkan, dan kemudian menyatukannya kembali ke dalam MP4. Jika output.mp4 sudah ada, perintah akan gagal. Versi di atas menggunakan pipa bernama, jika Anda berada di sistem yang tidak mendukung yang Anda harus menggunakan file perantara (seperti 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
Evilsoup
sumber
dapatkah seseorang menjelaskan bagaimana hal ini dilakukan avconvalih - alih ffmpeg? Saya bisa menyelesaikan dua langkah pertama, tetapi yang terakhir tidak mengenali opsi-absf
becko
@becko Lihat hasil edit saya. Sekarang Anda harus menggunakan penspesifikasi aliran (lihat di sini libav.org/avconv.html#Advanced-options ).
slhck
2
1 hanya untuk referensi di masa mendatang, Anda dapat menggantikan avconvuntuk ffmpegdi perintah di atas dan itu akan bekerja.
becko
15

Demuxer perhatian

Demuxer concat ditambahkan ke ffmpeg 1.1. Jika versi ffmpeg Anda sudah tua, dapatkan biner statis terbaru dari sini: http://www.ffmpeg.org/download.html

Instruksi

Buat file mylist.txtdengan semua file yang ingin Anda gabungkan dalam bentuk berikut (Baris dimulai dengan tanda hubung diabaikan):

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

Perhatikan bahwa ini bisa berupa jalur relatif atau absolut. Kemudian Anda dapat menyandikan file Anda dengan:

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

Dimungkinkan untuk membuat file daftar ini dengan bash for loop, atau menggunakan printf. Salah satu dari berikut ini akan menghasilkan file daftar yang berisi setiap * .wav di direktori kerja:

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

Sumber: ffmpeg wiki

erik
sumber
8

YAMB bersama dengan MP4BOX adalah pilihan yang bagus.
Unduh keduanya dan unzip (tidak diperlukan instalasi dan bersama-sama sekitar 5MB), di YAMB pilih Pengaturan dan atur jalur folder MP4box.
Untuk bergabung dengan file mp4 pilih Editing> Klik untuk Bergabung dengan yang didukung ...

Eran
sumber
1
Sepertinya solusi terbaik, menjaga format wadah .mp4 yang tampaknya menjadi pilihan yang lebih menarik bagi penulis ^^
Oskar Duveborn
1
Setelah kesulitan, saya menggunakan konfigurasi ini: MP4Box_path = E: \ Software \ Video Editing \ Yamb-2.1.0.0_beta2 \ MP4Box \ MP4Box.exe dalam upaya untuk menggabungkan 4 500MB file MP4 yang dihasilkan dari AVIDemux. Itu tidak berhasil. Program hanya duduk di sana selama 45 menit tanpa melakukan apa-apa sampai akhirnya saya menyerah.
djangofan
1
saya mengalami masalah dalam menggunakan metode ini karena masalah sinkronisasi audio. itu adalah mimpi buruk ... tidak mencobanya lagi.
Djangofan
6

SUPER © (Universal Player Encoder & Renderer) menyediakan Proses Output tambahan berikut:

Setiap input file Multimedia yang didukung dapat diproses:

      o Join Format-Identical Files.
      o Mux Video & Audio Streams.
      o DeMux Extract Streams. 

tentu saja, MP4 adalah format yang didukung.

SUPER © adalah freeware.


sumber
5
Antarmuka penggunanya adalah yang paling mengerikan yang pernah saya lihat dalam hidup saya. Saya tidak bercanda, itu hanya mengerikan. Saya menekankan sekali lagi: Saya tidak bisa menyebutkan antarmuka yang lebih buruk, saya serius tentang hal itu, saya belum pernah melihat apa pun di bawah "ambang SUPER".
Camilo Martin
5

Coba gunakan wadah video Matroska.

Pertama, Anda perlu mkvtoolnix . Download dan menginstalnya, maka Anda perlu untuk menjalankan mkvmerge GUI (kecuali jika Anda seperti alat baris perintah, yang baik-baik saja oleh saya - meskipun Anda mungkin ingin melihat bagian berkas yang menghubungkan dari dokumentasi mkvmerge ).

Tambahkan file pertama Anda dengan mengklik "tambah". Kemudian, klik "tambahkan", dan buka file kedua Anda. Atur file output, tekan "Mulai muxing" di bagian bawah, dan pergilah!

Jika wadah tidak sesuai dengan kebutuhan Anda, Anda dapat memasukkannya kembali, atau mencoba mengubahnya ke format lain ... Meskipun MKV adalah wadah yang sangat indah!

Penerobosan
sumber
itu harus disandingkan? saya tidak bisa bergabung tanpa muxing?
djangofan
Nah, jika Anda menggunakan wadah MKV, secara teknis Anda sedang memasangnya kembali. Cobalah, tidak ada penalti waktu nyata ...
Terobosan
1

Jika Anda dapat memainkannya di sistem Anda / memiliki codec diinstal, Windows Movie Maker mungkin cara tercepat (dan gratis) untuk bergabung dengan dua file. Anda kemudian dapat menggunakan VirtualDub untuk mengonversi ke format yang berbeda.

William Hilsum
sumber
Audacity tampaknya untuk file audio. Ini adalah file video.
Paolo Bergantino
Maaf, saya salah baca, hanya melihat bagian MP dan otak saya berani.
William Hilsum
Mengedit jawaban ...
William Hilsum
AFAIK, Pembuat Film tidak mendukung mp4 dan mengonversi ke format lain berarti kehilangan kualitas yang ditentukan pertanyaan sebagai tidak diinginkan.
Eran
Saya mencoba MovieMaker di windows7 dan audio menjadi tidak sinkron ketika menggabungkan file MP4 ke dalam WMV. Opsi ini tidak akan berfungsi.
djangofan
1

Solusi lain adalah Open Video Joiner . Itu juga tidak efek transisi.

masukkan deskripsi gambar di sini

harrymc
sumber
Ini adalah shareware. dan untuk $ 30 itu tidak murah hanya untuk menggabungkan file video
Eran
Dikatakan freeware. Maaf jika saya disesatkan.
harrymc