ffmpeg -segment_time şımarık segmentler üretir


0

Ffmpeg'i doğrudan OS X'ime yüklemek yerine bu docker görüntüsünü kullanıyorum. Ulaşmak istediğim, bazı .avi dosyalarını her biri 30 saniyelik sürelerle parçalara ayırmak. İşte benim emrim:

ffmpeg -i /mounted/fixed.avi -c copy -map 0:0 -map 0:1 -segment_time 30 -f segment /mounted/cutted_video/output%03d.avi

Sonuç beklendiği gibi, neredeyse%) output000.avi'den outputxxx.avi'ye kadar çok sayıda dosya var. Ancak, sadece birincisinde hem video hem de ses var, geri kalan dosyalar sessiz ve ikinci çerçeve de şımartılmış durumda (mplayer bu karede hızlıcaya kadar donuyor). Ses haritası parametresini kaldırırsam:

ffmpeg -i /mounted/fixed.avi -c copy -map 0:0 -segment_time 30 -f segment /mounted/cutted_video/output%03d.avi

ffmpeg güzel videolar üretiyor (doğru zamanlama az ya da çok bile olsa), ancak kesinlikle sessiz. Soru burada yanlış yaptığım şey mi? Sanırım bir şekilde ses haritalaması ile ilgili, ancak henüz bir cevap bulamadım. Video işleme konusunda oldukça yeni olduğum için her türlü yardımı takdir ediyorum.

PS Elbette başka bir çözüm var - videoyu -ss param ile parçalamak için oldukça basit bir python betiği yazmak, ancak ffmpeg'de yerleşik işlevler olduğundan kullanmak istiyorum.


İlk komutun tam konsol çıktısını yapıştırın. Ayrıca, yalnızca sesi eşleştirmeyi deneyin ve sesin tüm segmentlerde mevcut olup olmadığını kontrol edin.
Gyan


Sadece sesi eşleştirirsem tüm bölümlerde bulunur.
Nbooo

Ekle -reset_timestamps 1. Ve mp4'e çıktı vermeniz gerekebilir. Eklemek için ek bir seçenek-avoid_negative_ts make_zero
Gyan

@Mulvya Teşekkürler! -reset_timestamps 1ek manipülasyon olmadan mükemmel çalışır! Bu sorumun cevabı. Tekrar teşekkürler!
Nbooo
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.