İki mp4 dosyasını kaliteden kaybetmeden nasıl birleştirebilirim?


51

Aynı şovun iki bölümünden oluşan iki adet yüksek kaliteli mp4 dosyam var.

Bunları 1 dosyada birleştirmek istiyorum ve genellikle dosyalarımı birleştirmek için VirtualDub kullanıyorum ... Ama mp4'ü desteklemiyor gibi görünüyor.

Hangi alternatifler mevcut (özellikle yeniden kodlama gerektirmeyenler)?


Yanıtlar:


41

Dosyalarımı birleştirmek için genellikle VirtualDub kullanıyorum, ancak mp4'ü desteklemiyor görünüyor. Peki hangi alternatifler var?

Avidemux . Sadece VirtualDub gibi, sadece daha fazla format destekli ve yerleşik kodlayıcı ve filtrelerle. Her zaman tercihime göre kullanırım; benim için iyi AVC + AAC.MP4 dosyaları (recoding olmadan) katıldı.

Onlara AviDemux'ta katılmak için:

  1. Dosya -> Aç -> Dosya Seç
  2. Dosya -> Ekle -> Dosya Seç
  3. Tümünü kopyala olarak ayarla
  4. Dosya -> Kaydet -> DosyaAdı
  5. Bekle..

AViDemux forumlarına göre, bu birleştirme işlemi kayıpsız ( http://www.avidemux.org/smf/index.php?topic=9467.0 )


evet, sesin video ile senkronize edilmesinde mükemmel gibi görünüyor, oysa bu soruya cevap veren diğer kişiler bu IMHO hakkında sorgulanabilir.
djangofan

1
İki dosyayı birleştirmek için Avidemux'u birlikte kullanmaya çalıştım ancak ses senkronize edilemedi.
GiddyUpHorsey

Kullanılabilir ses materyali miktarı, video karelerinin uzunluğuyla eşleşmediğinde veya herhangi bir akış bozulması varsa, senkronizasyon sorunları yaşayabilirsiniz. Bunu VideoRedo veya ProjectX'in 'stream fix' özellikleri ile çözebilirsiniz.
bobince

1
Ancak bu yöntem işe yaradı: superuser.com/a/255566/1780 Yaşasın!
Christopher Galpin

4
İki Mp4 dosyasına katılmak için AviDemux kullanıyorsanız, sol alt köşedeki Mp4 Demux seçeneğini seçmeyi unutmayın. Aksi takdirde, onu bir avi'ye dönüştürmeye çalışabilir!

28

Bunu ffmpeg ile yapabilirsiniz:

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

Bu hiçbir şeyi yeniden kodlamaz, onları bir araya getirmelerini daha kolay hale getiren yeni bir aktarım akış kabına yerleştirir ve ardından onları tekrar bir MP4'te birleştirir. Output.mp4 zaten varsa, komut başarısız olur. Yukarıdaki sürüm, adlandırılmış yöneltmeler kullanır, eğer ara dosyaları kullanmak zorunda kalmayacakları sistemde kullanıyorsanız (pencereler gibi):

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

Birisi avconvbunun yerine nasıl yapıldığını açıklayabilir ffmpegmi? İlk iki adımı tamamlayabildim, ancak sonuncusu seçeneği tanımıyor-absf
becko

@becko Düzenlememe bak. Şimdi bir akış belirteci kullanmalısınız (buraya bakınız libav.org/avconv.html#Advanced-options ).
slhck

2
+1 sadece ileride avconvbaşvurmak ffmpegüzere, yukarıdaki komutların yerine geçebilir ve çalışacaktır.
becko

15

Concat demuxer

Concat demuxer ffmpeg 1.1'e eklendi. Eğer ffmpeg versiyonunuz eskiyse, buradan en yeni statik ikiliyi alın: http://www.ffmpeg.org/download.html

Talimatlar

mylist.txtAşağıdaki biçimde birleştirmek istediğiniz tüm dosyaları içeren bir dosya oluşturun (Bir çizgi ile başlayan satırlar yoksayılır):

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

Bunların göreceli veya mutlak yollar olabileceğini unutmayın. Ardından dosyalarınızı şu şekilde kodlayabilirsiniz:

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

Bu liste dosyasını döngü için bir bash ile veya printf kullanarak oluşturmak mümkündür. Aşağıdakilerden biri çalışma dizinindeki her * .wav dosyasını içeren bir liste dosyası oluşturur:

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

Kaynak: ffmpeg wiki


8

MP4BOX ile birlikte YAMB iyi bir seçenektir.
Her ikisini de indir ve sıkıştırlarını aç (kurulum gerekmeden birlikte 5MB civarında), YAMB'de Ayarlar'ı seçip MP4box'ın klasör yolunu ayarlayın.
Mp4 dosyalarına katılmak için Düzenleme> Desteklemek için tıklayın'a tıklayın ...


1
^^ yazara daha cazip bir seçenek gibi görünüyor .mp4 kapsayıcı biçimini tutarak, en iyi çözüm gibi görünüyor
Oskar Duveborn

1
Zorluktan sonra, bu yapılandırma kullandım: MP4Box_path = E: \ Yazılım \ Video Düzenleme \ Yamb-2.1.0.0_beta2 \ MP4Box \ MP4Box.exe, AVIDemux tarafından üretilen 4 500 MB MP4 dosyasını birleştirmek için. İşe yaramadı. Sonunda pes etmeden, program 45 dakika boyunca hiçbir şey yapmadan oturdu.
djangofan

1
Ses senkronizasyon sorunları yüzünden bu metodu kullanırken sorun yaşadım. bir kabus gibiydi ... bir daha denememek.
djangofan

6

SUPER © (Basitleştirilmiş Universal Player Encoder & Renderer) aşağıdaki ek Çıkış İşlemlerini sağlar:

Desteklenen herhangi bir giriş Multimedya dosyası işlenebilir:

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

Tabii ki, MP4 desteklenen bir formattır.

SÜPER © ücretsizdir.


5
Onun kullanıcı arayüzü hayatımda gördüğüm en korkunç. Şaka yapmıyorum, sadece korkunç. Bir kez daha vurgularım: Daha kötü bir arayüze ad veremiyorum, bu konuda ciddiyim, "SÜPER eşiğin" altında hiçbir şey görmedim.
Camilo Martin

5

Matroska video kabını kullanmayı deneyin.

Öncelikle, mkvtoolnix'e ihtiyacınız var . İndirin ve kurun, o zaman Mkvmerge GUI ateşlemek gerekiyor (sürece bana göre gayet komut satırı araçları gibi - bakmak isteyebilirsiniz rağmen bağlantısı bölümünde dosyanın içinde Mkvmerge belgelerinde ).

İlk dosyanızı "ekle" yi tıklayarak ekleyin. Ardından, "ekle" ye tıklayın ve ikinci dosyanızı açın. Çıktı dosyasını ayarlayın, alt kısımdaki "Muxing Başlat" düğmesine basın ve uzağa gidin!

Konteyner ihtiyaçlarınız için uygun değilse, yeniden kodlayabilir veya başka bir formata dönüştürmeyi deneyebilirsiniz ... MKV çok hoş bir konteyner olmasına rağmen!


karıştırılması gerekiyor mu? mux olmadan birleştirilemez mi?
djangofan

Eğer bir MKV kabı kullanıyorsanız, teknik olarak onu kontrol ediyorsunuz . Deneyin, gerçek zamanlı bir ceza yok ...
Atılım

1

Bunları sisteminizde oynatabiliyorsanız / yüklü bir kodlayıcı varsa, Windows Movie Maker iki dosyaya katılmanın en hızlı (ve ücretsiz) yoludur. Daha sonra farklı bir formata dönüştürmek için Virtualdub'ı kullanabilirsiniz.


Audacity ses dosyaları için gözüküyor. Bu bir video dosyası.
Paolo Bergantino

Çok üzgünüm, yanlış okudum, sadece milletvekili kısmını ve beynimi cüretkar görünce gördüm.
William Hilsum

Cevabı düzenleniyor ...
William Hilsum

AFAIK, Movie Maker mp4'ü desteklemiyor ve farklı bir formata dönüştürmek, sorunun istenmeyen olarak belirttiği kalite kaybı anlamına geliyor.
Eran

MovieMaker'ı windows7'de denedim ve MP4 dosyalarını bir WMV'ye katarken ses senkronize edildi. Bu seçenek işe yaramayacak.
djangofan

1

Diğer bir çözüm de Open Video Joiner . Aynı zamanda geçiş efektleri de yapar.

görüntü tanımını buraya girin


Yine de bir shareware. ve 30 $ için sadece video dosyalarını birleştirmek için ucuz değil
Eran

Ücretsiz olduğu söyleniyor. Yanlış yönlendirildiğim için üzgünüm.
harrymc
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.