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.
-reset_timestamps 1
. Ve mp4'e çıktı vermeniz gerekebilir. Eklemek için ek bir seçenek-avoid_negative_ts make_zero
-reset_timestamps 1
ek manipülasyon olmadan mükemmel çalışır! Bu sorumun cevabı. Tekrar teşekkürler!