ffmpeg stream kopyalama çerçevesi doğruluğu


2

Bunun mümkün olamayacağını biliyorum, ama en azından neler olduğunu anlamanızı takdir ediyorum.

Her 2 saniyede bir zorunlu anahtar karelere sahip bir videom var. İdeal olarak, yeniden kodlamak zorunda kalmadan mükemmel çerçeve dilimleri alabileceğimi umuyordum. Örneğin:

ffmpeg -ss 00:00:00 -i original.mp4 -t 2 -c copy slices_0.mp4
ffmpeg -ss 00:00:02 -i original.mp4 -t 2 -c copy slices_1.mp4
ffmpeg -ss 00:00:04 -i original.mp4 -t 2 -c copy slices_2.mp4
...

Bu işe yaramadı.

Daha fazla kazmak, ilk dilimin kare-doğru gibi görünmesine benziyor, fakat ondan sonraki her şeyin hafif bir kayması var (başka problemleri olabilir, ama şimdilik sadece buna odaklanıyorum). İlk kare tamam görünüyor:

# same output
ffmpeg -ss 00:00:03 -i original.mp4 -vframes 1 o.png && md5 o.png
ffmpeg -ss 00:00:00 -i slices_1.mp4 -vframes 1 1.png && md5 1.png

Fakat ondan sonraki her şey kapalı:

# not the same output
ffmpeg -ss 00:00:04 -i original.mp4 -vframes 1 o.png && md5 o.png
ffmpeg -ss 00:00:01 -i slices_1.mp4 -vframes 1 1.png && md5 1.png

Ne yaparsam yapayım aynı sonucu aldım. Çerçeve 60 için orijinalin PTS'sine bakarsam 2.002000 elde ederim (2 yerine). Ama bunu dilimim için kullansam bile, aynı dengeyi alıyorum.

Neler oluyor?

(Muhtemelen farkına varılmadı, ama ben de asıl olmasa da 0_slices.mp4'ün ilk karesinin neden ofset PST / DST olduğunu merak ediyorum)

Yanıtlar:


0

Çerçeve için doğru arama yapmak istiyorsanız, -ssbayraklarınızı giriş dosyanızın arkasına koymayı deneyin .

Yani böyle bir şey:

ffmpeg -i original.mp4 -ss 00:00:04 -vframes 1 -f image2 0.png.

ssBayrağı giriş dosyasının önüne koymak PTS açısından 'kaba bir tahmin' olacak, ancak çalışması için bir I-çerçeveye oturtulması gerekiyor. ssBayrağı girdi dosyanızın arkasına koymaktan çok daha hızlı bir şekilde gerçekleşir , ancak daha az doğru olması pahasına.

ssBayrağı girdi dosyasının arkasına koyduğunuzda , FFmpeg dosyanın başından başlayarak -sszamanınız doluncaya kadar şifresini çözer . Daha sonra tüm bilgileri sszamandan önce döküyor ... Bu yüzden çok daha uzun sürüyor, ancak doğru olması gerekiyor.

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.