Başka bir MP4 dosyası oluşturan iki veya daha fazla MP4 dosyasını nasıl birleştirebilir veya birleştirebilirim? [çift]


14

Bu sorunun zaten burada bir cevabı var:

Son bir çıkış MP4 dosyasında 2 veya daha fazla MP4 dosyasını nasıl birleştirebilir veya birleştirebilirim?

DOS penceresinde COPY komutunu kullanmayı denedim (bir yerlerde okudum), ancak iyi çalışmıyor.


Daha fazla bilgi için ayrıca superuser.com/questions/43588/… adresine bakın . Bu soruyu yinelemeli olarak sınıflandırmamın kesin değil.
Atılım

1
lütfen işletim sisteminizi bir etiket olarak ekleyin.
tumchaaditya

Yanıtlar:


12

MP4Box bunu yapabilir, ancak YAMB veya My MP4Box GUI gibi bir GUI kullanmak isteyebilirsiniz . (Not: O değil benim ., Bizzat programın bu sadece isim) Windows için MP4Box ikili edinilebilir bu sitede .

Örnek:

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

4

Ben usind tavsiye vardı ffmpeg Mac OS X, Linux ve kullanılabilir, Windows'un .

İşte iki filmi nasıl birleştireceğinizi anlatan güzel bir örnek: http://www.ffmpeg.org/faq.html#SEC27

Son adımda, sadece ortaya çıkan dosya için bir MP4 kabı yaptığınızdan emin olmanız gerekir.


Verilen ffmpeg SSS cevabını anladığım kadarıyla, bu MP4 (muhtemelen H.264) video ile yapılamaz, çünkü bu "ayrıcalıklı formatlardan" değil.
ttarchala

@ttarchala: Yapılabilir mi denerdim. Daha önce FFmpeg ile MP4'e dönüştürdüm, ancak iki filmi bir araya getirmedim. Ayrıca: FFmpeg'in çok hızlı bir gelişim gösterdiğini de belirtmek isterim. Bir sürümle çalışmayan, bir sonraki sürümde işe yarayabilir.
polemon

1
Değil tüm FFMPEG yapılarında MP4 desteğine sahip. Birincisi, patentli bir teknolojidir ve ABD’deki MP4 kodlayıcıları bir ücret ödemeden dağıtmak tartışılmaz. Ancak, birçok bina bunu yapabilir.
CarlF

@CarlF: Linux ve Mac OS X'e gelince, bu gerçekten bir sorun değil. Kod olabilir hepsi iyidir, kendi FFmpeg oluşturur kim, bu yüzden temelde, serbestçe dağıtılabilir. Patent vermek için, bir yorumu paylaşmak istiyorum: Siteyi şu anda elimde bulamayacağım, ancak AAC için (ilk olarak MPEG-4'te tanımlanmıştır) sona erecek ilk patent 2022'de. sadece ilki, tamamen yasal
olana

4

Bunu ffmpeg ile yapmayı deneyebilirsiniz:

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

Bu hiçbir şeyi yeniden kodlamaz, onları yeni bir taşıma akış kabına yerleştirir, bu da birleştirmelerini daha kolay hale getirir ve ardından onları tekrar 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ıyor, ara dosyaları kullanmak zorunda kalacakları desteklemeyen bir sistemdesiniz:

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

peki ya h264 değil, mpeg4 ise?
Edison,

2

Güncelleme: Sadece başka bir cevabı okuduktan sonra, kurduğum gibi avidemux'u kontrol ettim. Aradığın şey (adından dolayı MP4 yapabileceğini düşünmedim…).

VirtualDubMod'un mp4 yetenekli olduğunu düşünüyorum, ancak kullanmadım, bu yüzden emin değildim.

MeGUI'yi kontrol etmek isteyebilirsiniz . Oldukça karmaşık ve zengin özelliklere sahip bir uygulama ve araçlar.

Bir kabın içine gömme aracı (sizin durumunuzdaki mp4), muhtemelen bunlarla bir araya getirilemeyecek olan, muxer olarak adlandırılır.

VirtualDub ile birlikte kullanabilirsiniz. Virtualdub, video akışlarını birleştirmek için ve muxer'ı tekrar mp4 yapmak için (yeniden kodlamak zorunda kalmadan).


1

Mencoder ile yapıyorum, ffmpeg ile avi'ye dönüştürdükten sonra

01.mp4 ... 15.mp4 adında 15 dosyanız olduğunu varsayarak basit bir komut dosyası.

#!/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

şerefe


1

İşte komut:

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

Bu boru karakterinin kaçılması gerekiyor mu? Yoksa bu komutu tamamen yanlış mı okuyorum?
katilist

kaçması gerekiyordu. ayy.
rogerdpack
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.