Повышение производительности записи на рабочем столе с помощью gstreamer

834
goodguyAbaddon

Как я могу улучшить производительность записи на рабочем столе, используя gstreamer со встроенной потоковой веб-камерой?

Я попробовал конвейер ниже, и он работает, но производительность очень плохая. Записывает только часть кадра из потока веб-камеры.

// webcam into screencast to file WEBM [fixed position] gst-launch-1.0 --gst-debug=3 \ videomixer name=mix \ ! videoconvert \ ! queue \ ! videorate \ ! vp8enc min_quantizer=10 max_quantizer=10 cpu-used=2 deadline=1000000 threads=2 \ ! queue \ ! mux. pulsesrc \ ! queue \ ! audioconvert \ ! vorbisenc \ ! queue \ ! mux. webmmux name=mux \ ! filesink location=screencast.webm ximagesrc \ ! mix. v4l2src do-timestamp=true \ ! video/x-raw,format=YUY2,width=640, height=480, interlaced=false, pixel-aspect-ratio=1/1, framerate=30/1 \ ! videobox border-alpha=0 top=-20 left=-25 \ ! mix. 
1

1 ответ на вопрос

0
goodguyAbaddon

после нескольких тестов я думаю, что нашел что-то, что меня удовлетворяет, я думаю, что это все еще может улучшиться, но в то время я буду использовать это:

//DESKTOP RECORDING WITH WEBCAM WITH SOUND gst-launch-1.0 --gst-debug=3 \ ximagesrc \ ! queue max-size-buffers=0 max-size-time=0 max-size-bytes=0 \ ! videomixer name=mix \ ! videoconvert \ ! videorate \ ! vp8enc min_quantizer=10 max_quantizer=10 cpu-used=2 deadline=1000000 threads=2 \ ! mux. pulsesrc \ ! audioconvert \ ! vorbisenc \ ! queue max-size-buffers=0 max-size-time=0 max-size-bytes=0 \ ! mux. webmmux name=mux \ ! filesink location=screencast.webm v4l2src do-timestamp=true \ ! video/x-raw,format=YUY2,width=640, height=480, interlaced=false, pixel-aspect-ratio=1/1, framerate=30/1 \ ! queue max-size-buffers=0 max-size-time=0 max-size-bytes=0 \ ! mix.