İlk videoda ses parçası olmadığında videoları ffmpeg ile birleştirmek sessiz video oluşturur


3

3 mp4 dosyam var:

  • 1.mp4 - Video var, ses yok
  • 2.mp4 - Video ve sesi var
  • 3.mp4 - Video ve sesi var

Birleştirme için bir klip dosyası (clips.txt) oluşturdum:

file '1.mp4'
file '2.mp4'
file '3.mp4'

Aşağıdaki komut satırını çalıştırıyorum:

ffmpeg -f concat -i "clips.txt" -c:a aac -b:a 160k -y "out.mp4"

Üretilen dosyada video var, ancak ses yok, muhtemelen 1.mp4'te ses parçası yok.

Clips.txt dosyasını yeniden düzenlersem 1.mp4 ilk olmazsa, out.mp4 bir ses parçasına sahiptir.

Ffmpeg'i ses kullanmaya zorlamanın bir yolu var mı? Sanırım sessiz videolar için sessiz bir ses parçası üretmek zorunda kalacak.

Teşekkürler!


ya da sessiz olan bir şarkıyı önce sessize almayan bir şarkıya ekleyin, bkz. stackoverflow.com/questions/11779490/... bazı fikirler için.
Psycogeek

Yapmam gereken şey buydu. Daha temiz bir çözüm umuyordum, ama buna bağlı kalmaya karar verdim.
Phil

Yanıtlar:


6

Bunun üzerine tökezleyen ve benim yaptığım şeyi başarmak isteyen herkes için, şöyle çözdüm:

ffmpeg -i "1.mp4" -f lavfi -i aevalsrc=0 -shortest -y "new_1.mp4"

Bu ne diyor:

  • 1.mp4'ü alın (ses olmayan video kliptir) (-i "1.mp4")
  • Gereken minimum sessizliği oluşturun (-f lavfi -i aevalsrc = 0 -shortest)
  • Sonuç çıktısı (-y "new_1.mp4")

Buradan önce yaptığım gibi birleştim, ancak clips.txt dosyasındaki "1.mp4" yerine "new_1.mp4" yazısını kullandım


2
Sessiz ses için, kanal düzenine ve diğer girişlerin örnekleme oranına uygun olduğundan emin olun. Örneğin, 44.1kHz stereo ses: -i anullsrc=cl=stereo:r=44100 (bunlar varsayılan ayarlardır. anullsrc filtresi ).
llogan

Ah. Bunu yapacağımı bilmiyordum. Teşekkürler!
Phil

2
Ayrıca, eklemeyi düşünün -c:v copy Videoyu yeniden kodlamak yerine sadece yeniden kopyalamak için.
llogan
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.