Donanım hızlandırmalı h264 kodlaması mümkün mü?


12

Raspberry Pi, kamera kartından video kaydederken donanım hızlandırmalı h264 kodlaması yapacak. Kaynak görüntüler doğrudan kameradan gelmediğinde h264'ü (donanım hızlandırma kullanarak) nasıl kodlayabilirim?

Bunu destekleyen herhangi bir komut satırı aracı var mı?

Hayır ise, bunu mümkün kılmak için hangi API'lara bakmalıyım?


Ne kodluyorsunuz ve şu anda nasıl? - video dosyalarını dönüştürüyor musunuz, resim ve seslerden mi oluşturuyorsunuz ...
Wilf

@Wilf genel olarak bu ilgileniyorum, ancak mevcut bir uygulama var: doğrudan videoya bir zaman atlamalı kodlama. Raspivid kullanamıyorum çünkü 1/5 ve 2 fps arasında düşük kare hızlarına ihtiyacım var. Ayrıca, raspivid otomatik pozlama, aydınlatma koşulum (düşük ışık) altında salınımlara girer. Bu yüzden raspistill kullanmak istiyorum, ancak sonuç çok fazla yer kaplamamak için doğrudan videoya kodlamak istiyorum (JPEG'ler gibi). İkinci bir uygulama olarak, Mathematica (CPU zamanı çok fazla zaman alacak) kullanarak her kareyi gerçek zamanlı olarak işlemek ve daha sonra h264 kodlanmış göndermek istiyorum.
Szabolcs

1
Ben işi yapmak mümkün olması gerektiğini düşünüyorum kısmi bir çözüm var mı @Wilf: Fikir gibi bir şey raspiyuv -o - | rpi-encode-yuv(kabaca) nerede rpi-encode-yuvaracı dan burada . Çerçeve boyutu bu araçta sabit kodlanmıştır, bu nedenle C dosyasının başında değiştirmeniz ve yeniden derlemeniz gerekir. Maalesef raspiyuv, çerçeve boyutunu çıktısına kodlamadığı için henüz düzgün hizalanmış bir çıktı almayı başaramadım . Sonunda çöpe dönüşen yavaş yavaş değişen bir resim elde ediyorum. Hala üzerinde çalışıyor.
Szabolcs

Yanıtlar:


8

GStreamer, Raspbian'a dahildir ve OpenMAX eklentisi ile Raspberry Pi'nin donanım kodlama özelliklerini kullanacaktır.

Aradığınızı yapma hakkında bir eğitim için bu bağlantıya bakın: https://www.raspberrypi.org/forums/viewtopic.php?t=72435

Kod dönüştürme ile ilgileniyorsanız, ilginizi çekebilecek başka bir soruya cevap gönderdim: Donanım-H264 kodlamasından ne kadar hız bekleyebilirim?


Teşekkürler! Bunu şu anda test edemiyorum ancak eğitiminize göre önceden kabul edeceğim.
Szabolcs

1

Görünüşe göre ffmpeg'i kendiniz derleyerek RPi3B + 'da alabilirsiniz

1920 X 1080 JPEG GÖRÜNTÜ SIRASI - ÖNEMLİ HAREKET VE İÇ MEKAN DETAYI - YÜKSEK KALİTE AYARLARINDAN 30 FPS VİDEOYU KODLAMA

Yazılım Tabanlı H.264 Kodlama (CPU): 2,6 FPS (gerçek zamandan 11,5 kat daha yavaş)

Donanım Tabanlı H.264 Kodlama (GPU): 6,3 FPS (gerçek zamandan 4,8 kat daha yavaş)

640 X 480 JPEG GÖRÜNTÜ SIRASI - ÖNEMLİ HAREKET VE İÇ MEKAN DETAYI - YÜKSEK KALİTE AYARLARINDAN 30 FPS VİDEOYU KODLAMA

Yazılım Tabanlı H.264 Kodlama (CPU): 18 FPS (gerçek zamanlıdan 1,7 kat daha yavaş)

Donanım Tabanlı H.264 Kodlama (GPU): 38 FPS (gerçek zamandan 1,3 kat daha hızlı)

Tüm bunları başarmak için komut dosyası bir forum iş parçacığında .

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.