2016-04-11 20 views
1

2 adet gestreamer boru hattım var. Biri ekranda kameradan çekilen bir ölçeklenmiş canlı videoyu gösterirken diğeri videoyu orijinal biçiminde alır ve H264 formatıyla kodladıktan sonra diskteki bir dosyaya kaydeder. İki boru hattı aşağıdaki gibidir; iki gstreamer boru hattını birleştirin

# Capture and display scaled camera feed 
gst-launch-1.0 -v autovideosrc ! videoscale ! video/x-raw, 
width=480,height=270 ! xvimagesink -e --gst-debug-level=3 sync=false 

# Save the camera feed in its original format to disk 
gst-launch-1.0 -v autovideosrc ! omxh264enc ! 'video/x-h264, 
stream-format=(string)byte-stream' ! h264parse ! qtmux ! filesink 
location=test.mp4 -e 

Bu iki boru hatları

kendileri tarafından çalışmak ve ben bir dosyaya ekranda ölçekli video göstermek birine yani bunları birleştirmek VE orijinal biçiminde video kaydetmek nasıl merak ediyorum?

cevap

1

tee öğesine ihtiyacım var gibi görünüyor. emin değilim eğer bu doğru yapıyorum ama işe yaramazsa:

gst-launch-1.0 -v autovideosrc ! tee name = t ! queue ! omxh264enc ! 
'video/x-h264, stream-format=(string)byte-stream' ! h264parse ! qtmux ! 
filesink location=test.mp4 t. ! queue ! videoscale ! video/x-raw, 
width=480,height=270 ! xvimagesink -e sync=false 
+1

evet bu doğru bir yaklaşımdır :) tee tam olarak istediğiniz şeyi yapar, borunuz doğru görünüyor. Ayrıca, her dalın işlenmesini ayrı bir iş parçacığına taşımak için gerekli olan tişörtlerden sonra kuyruklar kullandınız (aksi takdirde dallar birbirini engelleyebilir). – nayana

+0

@otopolsky Onay için teşekkürler! Ben gstreamer için yeniyim, hala ipleri öğreniyorum! Boru hattını dokümantasyon örneğinden yeniden biçimlendirdim, ancak emin olduğum bir şey, ikinci kez (ikinci sıradan önce) tee elemanına başvurduğumuz, bize t diye değindiği. (Neden sonunda dönem?) – Luca

İlgili konular