Merhaba dostlar. Bir klasördeki audio’ları ve video’ları x sürede bir sonraki audio’ya veya video’ya geçecek ve daha önce kalınan yerden y saniye geriden başlayacak şekilde birleştirmek istiyorum. Bunu yapacak bir FFmpeg komutuna ihtiyacım var. Bir örnek vereyim. Diyelim “medya” klasöründe “a.wav”, “b.mp4”, “c.wav” dosyaları var. Uzunlukları sırayla 10:05, 12:00, 06:00 olsun. x=4 dakika, y=5 saniye olsun. Çıktının şöyle olması gerek: a[00:00…04:00] + b[00:00…04:00] + c[00:00…04:00] + a[03:55…07:55] + b[03:55…07:55] + c[03:55…06:00] + a[07:50…10:05] + b[07:50…11:50] + b[11:45…12:00] Yardımcı olacak dostlara teşekkürler. < Bu mesaj bu kişi tarafından değiştirildi paraffin -- 22 Nisan 2024; 14:25:27 > < Bu ileti mobil sürüm kullanılarak atıldı > |
FFmpeg ile parçalı birleştirme nasıl yapılır?
-
-
chatgbpt şu cevabı verdi
Aşağıdaki FFmpeg komutu, belirttiğiniz gereksinimlere uygun olarak audio ve video dosyalarını birleştirecektir. Ancak, ffmpeg'in kesin zamanlamaları belirli dosyaların bit hızlarına bağlı olabilir, bu yüzden tam olarak belirttiğiniz saniye ve dakika değerlerine tam olarak uyup uymadığını görmek için sonuçları kontrol etmeniz gerekebilir.
ffmpeg \
-i medya/a.wav -i medya/b.mp4 -i medya/c.wav \
-filter_complex "\
[0:a]adelay=0|0[a0]; \
[1:a]adelay=0|0[a1]; \
[2:a]adelay=0|0[a2]; \
[0:a]adelay=235000|235000[a3]; \
[1:a]adelay=235000|235000[a4]; \
[2:a]adelay=235000|235000[a5]; \
[0:a]adelay=470000|470000[a6]; \
[1:a]adelay=470000|470000[a7]; \
[1:a]adelay=475000|475000[a8]; \
[a0][a1][a2][a3][a4][a5][a6][a7][a8]concat=n=9:v=0:a=1[outa]" \
-map "[outa]" -strict -2 output****
Bu komut, "medya" klasöründeki "a.wav", "b.mp4" ve "c.wav" dosyalarını alır ve çıktı olarak "output****" adlı birleştirilmiş bir ses dosyası oluşturur. Bu komut, belirttiğiniz x ve y değerlerine uygun olarak her dosyanın parçalarını birleştirir.
Bu mesaj IP'si ile atılan mesajları ara Bu kullanıcının son IP'si ile atılan mesajları ara Bu mesaj IP'si ile kullanıcı ara Bu kullanıcının son IP'si ile kullanıcı ara
KAPAT X