Nisan 2015 itibariyle, Raspbian'da bulunan GStreamer 1.2, omxh264enc ile kodlanmış OpenMAX donanım hızlandırmalı H.264'ü destekliyor.
Karşılaştırma yaparken bazı kıyaslamalar yaptım:
- MacBook Pro (2011 başında) çift çekirdekli i7-2620M 2.7GHz (Sandy Bridge) - 4GB RAM
- Ahududu Pi 2 Model B 900 MHz dört çekirdekli ARM Cortex-A7 CPU - 1GB RAM
Örnek dosya: Alatriste (2006) filminden 60'lar örneği. Orijinal dosya 1080p'dir ve 30 MB alır. Dosyayı 720p'ye dönüştürdüm. Çalışmayı video kodlamaya yoğunlaştırmak için tüm ses parçaları göz ardı edildi.
Sonuçlar:
Açık (1), El Freni (x264 codec) kullanarak x264 ayarları veryslow ve ortalama bit hızı 1145kbps (1-pass) ile şifrelenerek 7.7MB bir dosya elde ettim. Profil Yüksek, seviye 4.0. Kodlama 4 iplik kullanarak 3 dakika 36 saniye sürmüştür. El freni toplam kümülatif CPU şarjı ~% 380. Video kalitesi çok iyiydi. Küçük eserler gözlemlenebilir ve detay kaybı kolay gözlemlenemez. Hala aşağıya bakınız.
Açık (2), GStreamer ve omxh264enc (donanım hızlandırmalı) kullanarak hedef-bit oranı = 1145000 (1145kbps), kontrol oranı = 1 (değişken bit hızı kontrol yöntemi) ile kodlandı, bu da 6.9 MB'lık bir dosya verdi. Kodlama 1 iş parçacığı kullanarak 7dk 4s aldı. Gst-launch-1.0 ~ 100% toplam kümülatif CPU şarjı. Video kalitesi net bir şekilde görülebilen ve kolayca gözlenebilen detay kaybıyla artefaktlarla belirgin şekilde düşürüldü. Hala aşağıya bakınız.
gst-launch-1.0 -v filesrc location=sample-1080p.mp4 ! decodebin ! videoconvert ! \
videoscale ! video/x-raw,width=1280,height=688 ! omxh264enc control-rate=1 \
target-bitrate=1145000 ! h264parse ! mp4mux ! \
filesink location=sample-720p-OMX-1145kbps.mp4
Enkoder olarak x264enc ile GStreamer kullanıldığında, gst-launch-1.0'ın toplam kümülatif CPU ücreti, yaklaşık% 380'e ulaşır, bu, omxh264enc'in GPU'yu kullandığı gerçeğini destekler. Ayrıca, (2) 'deki x264enc ile süre 15dk.
Sonuç:
Oldukça benzer bir dosya boyutu için, donanım hızlandırmalı RaspBerry Pi 2 GPU kodlayıcı tarafından harcanan zaman, çift çekirdekli i7-2620M'deki x264 kodlayıcısının neredeyse iki katıydı. Ses kodlama ve çoğullama ekleme, bu test sırasında RaspBerry Pi üzerindeki büyük ölçüde kullanılmayan CPU nedeniyle bu açığı biraz kapatabilir. Yazılım kalitesi ile kodlanmış dosyada video kalitesi açıkça üstündür. Aşağıdaki fotoğraflara bakın.
Omxh264enc için mevcut yapılandırma seçenekleri (gst-inspect-1.0 tarafından açık olan) x264 kodlayıcıya kıyasla sınırlıdır, ancak daha fazla deneme daha iyi kalite sağlayabilir.
Ek:
Raspbian depolarından GStreamer ve OpenMax kurulumu:
$ apt-get install libgstreamer1.0-0 libgstreamer1.0-0-dbg libgstreamer1.0-dev liborc-0.4-0 liborc-0.4-0-dbg liborc-0.4-dev liborc-0.4-doc gir1.2-gst-plugins-base-1.0 gir1.2-gstreamer-1.0 gstreamer1.0-alsa gstreamer1.0-doc gstreamer1.0-omx gstreamer1.0-plugins-bad gstreamer1.0-plugins-bad-dbg gstreamer1.0-plugins-bad-doc gstreamer1.0-plugins-base gstreamer1.0-plugins-base-apps gstreamer1.0-plugins-base-dbg gstreamer1.0-plugins-base-doc gstreamer1.0-plugins-good gstreamer1.0-plugins-good-dbg gstreamer1.0-plugins-good-doc gstreamer1.0-plugins-ugly gstreamer1.0-plugins-ugly-dbg gstreamer1.0-plugins-ugly-doc gstreamer1.0-pulseaudio gstreamer1.0-tools gstreamer1.0-x libgstreamer-plugins-bad1.0-0 libgstreamer-plugins-bad1.0-dev libgstreamer-plugins-base1.0-0 libgstreamer-plugins-base1.0-dev
$ gst-launch-1.0 --version
gst-launch-1.0 version 1.2.0
GStreamer 1.2.0
MacBook Pro'da HandBrake (x264) kullanılarak kodlanmış, hala 720p videodan QuickTime X (tam detay için görüntüyü açın veya indirin):
Raspberry Pi 2'de GStreamer (OpenMAX aracılığıyla donanım kodlaması) kullanılarak kodlanmış 720p video hala QuickTime X (tam ayrıntı için görüntüyü aç veya indir):
Güncelleştirme:
Aşağıdaki ecc29 önerisi yöntemi ölçekleme Lanczos kullanmanın ben ekleyerek bir test uygulandı method=lanczos
için videoscale
. Kodlama işlemi zamanla iki katına çıktı, yaklaşık 7 dakika ila 14 dakika 37s arasında atladı. Sonuç, kaliteden neredeyse metodsuz olanla aynıdır (varsayılan bilinear). Aslında, kusurlar esas olarak donanımdaki kodlama işleminden kaynaklanmaktadır. Onlar açıkça sıkıştırma eserlerdir.