2011-09-27 21 views
8

İki mp4 videoyu birleştirerek ffmpeg kullanarak tek bir mp4 videosu oluşturmak istiyorum. Ben şimdiye kadar denedim neler İki videoyu birleştiren ffmpeg

i video Birinci giriş codec'i ve diğer değil ile video almak her zaman

ffmpeg -i input1.mp4 -i input2.mp4 output.mp4 

olduğunu ama. Onları nasıl birleştirebilirim? Bu konuda herhangi bir fikir çok takdir edilecektir.

+1

"İlk girdinin video kodekiyle değil, diğeriyle" ne demek istiyorsunuz? Farklı video formatları mı? Her iki videonun içeriğini çıktıda alıyor musunuz? – TheJuice

+0

Lütfen daha fazla ayrıntı verin. Onları birleştirmeyi nasıl bekliyorsunuz? Sırayla? Ya da tek bir dosyada iki paralel video akışına sahip olmak ister misiniz? MP4 sadece bir konteynerdir. Gerçek kodekler aynı mı? Dosyalarınız için "ffprobe" çıktısını verin. – misha

+0

her iki video da aynı formatta ve ben sadece ouptput dosyasındaki ilk videoyu aldım. – Astha

cevap

5

Dosya ekleme hakkında bilgi için lütfen FFMPEG FAQ'u okuyun.

Ne yazık ki, MP4 dosyalarını kullandığınızdan, MP4 biçiminde bir "başlık" (her ne kadar dosyanın başında olması gerekmese de) bölümü bulunduğundan, basit birleştirme sizin için çalışmayacaktır. medya verilerine ofsetleri tanımlar ve içerir. Her iki dosyayı da birleştirilebilecek bir formata dönüştürmeniz ve daha sonra bu formattan bir MP4 dosyası oluşturmanız gerekecektir (uygun bir başlık bölümü oluşturacaktır).

5

.mp4 dosyalarını birleştiremezsiniz, ancak .mpg dosyalarını birleştirebilirsiniz. Her iki videoyu da ffmpeg kullanarak .mpg'ye dönüştürmeyi deneyin. Sonra, birleşik bir .mpg dosyası oluşturmak için .mpg dosyaları üzerinde basit bir linux cat komutunu çalıştırın. Bundan sonra, birleştirilmiş .mpg dosyasını ffmpeg kullanarak .mp4'e dönüştürün. Bu bir döner kavşak yaklaşımıdır ama işe yarıyor. Komut sayısını azaltmak için "adlandırılmış yöneltmeler" kullanabilirsiniz, ancak sonuç aynıdır.

3

Bunu ffmpeg ile yapabilirsiniz, ancak birden fazla MP4 dosyasını birleştirebilen MP4Box (GPAC parçası) adlı küçük bir araç da var. Senin durumunda

, sözdizimi önceki cevaplar gösterdiği gibi, sen bir ara biçimine ilk dönüştürmek gerekir

MP4Box -cat input1.mp4 -cat input2.mp4 output.mp4 
+2

Bunu, [concat demuxer] (https://trac.ffmpeg.org/wiki/Concatenate#demuxer) kullanarak 'ffmpeg' ile yapabilirsiniz (girişleriniz tamamen aynıysa, vb. Kullanın ve [stream] istiyorsanız copy] (http://ffmpeg.org/ffmpeg.html#Stream-copy)) veya [concat filter] (http://ffmpeg.org/ffmpeg-filters.html#concat) (eğer yeniden kullanmak isterseniz kullanın) kodlayın ve/veya girişleriniz aynı biçime, zaman alanına, vb. sahip değilse. – LordNeckbeard

+0

Hey, çok teşekkür ederim. Sadece mp4box kullanarak GoPro'mdan birden fazla mp4 dosyasını test ettim. Bunun ne kadar iyi çalıştığına hayran kaldım. Kusursuz kombine edildi. – daniel

5

olduğunu. mp4 h264 bit akışını içeriyorsa, kullanabilirsiniz:

ffmpeg -i input1.mp4 -c copy -bsf:v h264_mp4toannexb -f mpegts input1.ts 
ffmpeg -i input2.mp4 -c copy -bsf:v h264_mp4toannexb -f mpegts input2.ts 
ffmpeg -i "concat:input1.ts|input2.ts" -c copy output.mp4 

daha ayrıntılı bir cevap size here bulabilirsiniz.