ffmpeg ve iFrame çıktıları ve JPEG kalitesi


1

Bir soruna bir çözüm arıyordum ve seyahatlerimde, yaptığım şeyle bağlantılı olan ve 2. soruyu soran bir şeye rastladım.

Bu iki soruyu da burada topladım. İstemezsem istenirse 2 ayrı soruya ayıracağım.

Bir RTSP strteam'den ffmpeg kullanarak ip kameramdan bir görüntü çıkarmanın yolunu arıyordum.

Buldum ve bu oldu (Bir DOS komut isteminde test ettim)

ffmpeg -i rtsp://192.168.0.8/video_1 -f image2 -s 360x240 -vf fps=fps=10/60 img%3d.jpg

Görüntünün kalitesini kontrol etmenin bir yoluna bakıyordum. Servral jpeg'leri bir video dosyasına kodladığımda bunu kullanacağımı hatırlıyorum:

-f image2 -r FPS-i  + MyPath + \img%05d.jpg -crf 23  -y -r 'FPS' + 'oggOut.ogg'

Burada kalite -crf 23 kullanılarak ayarlanır, burada 23 görüntünün kalitesini ayarlar. Sayı ne kadar düşükse kalite o kadar iyi.

1. komut satırımda görüntü kalitesini belirtmenin bir yolu var mı? CRF'yi her yere koymayı denedim, ancak bayrak tanınmıyor.

Bir çözüm ararken bu sayfayı buldum:

Bir akıntıdan jpeg koymanın bazı örnekleri

Bu sayfadaki son örnek belirtilen:

Bu, her I karede bir küçük resim oluşturur

Bir i-Frame'in önceki ve mevcut karelerde bir değişiklik olduğunu anladım. Bunu test ettiğimde bana bir görüntü akışı verdi. Bir I-Frame'in ne olduğunu yanlış anladım mı?


1
Sorunuzun altındaki FFMPEG sayfasının ilk satırı, kullanılacak olan olacaktır. Bununla birlikte, FFMPEG kameranızdan canlı bir akış aldığından, cevaptaki zaman ayarını kullanamazsınız. Oluşturmak istediğiniz her küçük resim için komutu tekrarlamanız gerekecektir.
— Kinnectus

@BigChris Merhaba, Ben sadece bu şimdi kendim için çalıştı. Sadece basestream.length özelliği kullanılamadığında akışın sonuna kadar okumaya çalışıyorum.
— Andrew Simpson

Görüntü akışı, "her I karede bir küçük resim oluştur" örneğinden beklediğiniz gibi değil mi?
— llogan

@ LordNeckbeard Merhaba, öğreneceğim çok şey var biliyorum ama lütfen bir I-Frame nedir?
— Andrew Simpson

Yanıtlar:


2

JPG çıktı kullanımı için -q:v kaliteyi kontrol etmek. Menzil 2-31. Daha düşük bir değer daha yüksek bir kalitedir ve bu nedenle daha yüksek dosya boyutudur.

-crf seçenek libx264 (H.264 video) ve libvpx (VP8 / VP9 video) kodlayıcılar tarafından kullanılır, ancak değerler bu kodlayıcılar arasında değişir. Bu mjpeg (JPG görüntüleri / MJPEG videosu) veya libtheora (Theora videosu) için değildir.

Ayrıca, bulabilirsiniz ölçekli video filtresi daha esnek olmak -s çünkü sadece bir boyut tanımlayabilirsiniz ve en / boy oranını koruyarak filtre diğerini otomatik olarak sağlar: -vf fps=1/6,scale=360:-1. kullanma -s belirli bir boyuta zorlamak, kıvrılmış veya uzatılmış bir çıktıya yol açabilir.

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.