FFMpeg videoları birleştiremiyor: 31: v0 parametrelerinde giriş bağlantısı (boyut 1280x720, SAR 0: 1), in0: v0 parametrelerinde karşılık gelen çıkış linkiyle eşleşmiyor


0

NodeJS için birçok (50) videoyu birleştirmek için fluent-ffmpeg kullanıyorum. Fluent-ffmpeg komutu şu şekilde üretilir:

ffmpeg -i ./temp/1426738868618B778176A-254A-47E5-80D4-AF9E2DB836C6.mp4 -i 
./temp/14267388686185827E1A1-20CC-41A7-B121-4BE088580062.mp4 -i 
./temp/142673886861811F5BEB8-6567-4771-9F73-E13D47CE6773.mp4 -i
./temp/1426738868618C72B0345-739B-4243-B739-3BEF718EDE35.mp4 -i
./temp/1426738868618F37E694A-7433-4FB5-A977-0CF28913EDF8.mp4 -i
...
./temp/142673886861869535AA6-7A08-4447-9747-A40A28C4D57C.mp4 -i
./temp/1426738868618AAD398BC-3259-4087-9535-26D73EA5209F.mp4 -i
./temp/1426738868618193CF9E5-B0FB-4B60-B273-22614C376185.mp4 -i
./temp/142673886861875ABFC64-D0BA-429F-A53E-2088F90DD6E4.mp4 
-i./temp/142673886861841290364-42E0-4159-9A75-70528B8D471E.mp4 
-y -filter_complex concat=n=50:v=1:a=1 -r 29.97 -vcodec libx264 -s 568x320 -flags +loop 
-b 400k -bufsize 4M -bt 256k -refs 1 -coder 0 -me_range 16 -subq 4 
-partitions +parti4x4+parti8x8+partp8x8 -g 250 -keyint_min 25 
-level 30 -qmin 10 -qmax 51 -qcomp 0.6 -trellis 2 -sc_threshold 40 
-i_qfactor 0.71 -acodec aac -strict experimental -ab 80k -ar 48000 -ac 2 
-strict experimental -f mp4 -metadata:s:v:0 rotate=90 ./temp/1426738868618.mp4

Ancak hatayı alıyorum:

[Parsed_concat_0 @ 0x7faba20366a0] Input link in31:v0 parameters (size 1280x720, SAR 0:1) do not match the corresponding output link in0:v0 parameters (360x480, SAR 0:1)
[Parsed_concat_0 @ 0x7faba20366a0] Failed to configure output pad on Parsed_concat_0

Araştırdım ve böyle bir şey yapmalıyım, "setsar=1"ancak bunu eklediğimde filter_complexaynı hatayı alıyorum.

edit: işte http://pastebin.com/Sk2y3WQr komutu için tam çıktı


Lütfen konsol çıktısının tamamını gösterin ; sadece bir bölüm değil.
llogan

@ LordNeckbeard emin, bu yüzden benim soru uygun olmaz burada pastebin.com/Sk2y3WQr
David Zorychta 19:15 de

Yanıtlar:


0

Çerçeve boyutları

Gönderen concat filtre belgelerinde :

İlgili tüm akışlar, tüm segmentlerde aynı parametrelere sahip olmalıdır; Filtre sistemi otomatik olarak video akışları için ortak bir piksel formatı seçecek ve ses akışları için ortak bir örnek formatı, örnekleme hızını ve kanal düzenini seçecektir, ancak çözünürlük gibi diğer ayarların kullanıcı tarafından açıkça dönüştürülmesi gerekir .

Farklı kare hızları kabul edilebilir ancak çıktıda değişken kare hızına neden olur; çıktı dosyasını işlemek için yapılandırdığınızdan emin olun.

Girişleriniz çerçeve boyutuna göre değişir, bu nedenle ortak bir kare boyutu oluşturmak için ölçek filtresini kullanmanız gerekir .

Zaman damgaları

Ayrıca aynı dokümanlardan:

Bu filtrenin düzgün çalışması için tüm bölümlerin zaman damgası 0'dan başlaması gerekir.

Bunu yapmak için setpts filtresini kullanın .

Örnek

Kısmi bir filtreleme örneği şöyle görünebilir:

[0:v]scale=360x480,setpts=PTS-STARTPTS[v0];
[1:v]scale=360x480,setpts=PTS-STARTPTS[v1];
…
[49:v]scale=360x480,setpts=PTS-STARTPTS[v49];
[v0][0:a][v1][1:a]…[v49][49:a]concat=n=50:v=1:a=1

Hazır ayarları kullanın

Kendinize bir iyilik yapın ve kodlama ön ayarlarını kullanın. Bu kadar seçenek bildirmek için hiçbir sebep yok. Ön ayarlar onlarla ilgilenecek. Onlar bunun için var.

Kaldırabilirsiniz:

-flags +loop -bt 256k -refs 1 -coder 0 -me_range 16 -subq 4 
-partitions +parti4x4+parti8x8+partp8x8 -g 250 -keyint_min 25 
-level 30 -qmin 10 -qmax 51 -qcomp 0.6 -trellis 2 -sc_threshold 40 
-i_qfactor 0.71

Ve bu seçenekleri -preset fastertercih ettiğiniz herhangi bir ön ayar ile değiştirin . Daha fazla bilgi için FFmpeg Wiki: H.264 Video Kodlama Kılavuzuna bakınız .

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.