YaK:: Discussion #916 Message : 2010-01-06 06.40.34 strick | [Changes] [Calendar] [Search] [Index] [PhotoTags] |
[Back to discussion: The Yak tries Linux Webcam Video] |
gst-launch-0.10 -v -v -m v4l2src ! "video/x-raw-yuv,width=640,height=480,framerate=(fraction)5/1" ! ffmpegcolorspace ! smokeenc keyframe=64 ! identity dump=0 ! smokedec ! xvimagesink sync=false | tr '(),' ' ' | awk '$6="identity0:sink" && $9=="bytes" {b+=$8; print b}'
gst-launch-0.10 -v -v -m v4l2src ! "video/x-raw-yuv,width=320,height=240,framerate=(fraction)5/1" ! ffmpegcolorspace ! smokeenc keyframe=64 ! identity dump=0 ! smokedec ! xvimagesink sync=false | tr '(),' ' ' | awk '$6="identity0:sink" && $9=="bytes" {b+=$8; print b}'
Works well:
gst-launch-0.10 -v -v -m v4l2src ! "video/x-raw-yuv,width=320,height=240,framerate=(fraction)5/1" ! ffmpegcolorspace ! theoraenc ! rtptheorapay ! identity dump=0 ! rtptheoradepay ! theoradec ! xvimagesink sync=false
But freezes up very often with drop-probability=0.1:
gst-launch-0.10 -v -v -m v4l2src ! "video/x-raw-yuv,width=320,height=240,framerate=(fraction)5/1" ! ffmpegcolorspace ! theoraenc ! rtptheorapay ! identity dump=0 drop-probability=0.1 ! rtptheoradepay ! theoradec ! xvimagesink sync=false
Much more usable with "theoraenc keyframe-force=5".
Totalling bytes (this time, kf-f=10):
gst-launch-0.10 -v -v -m v4l2src ! "video/x-raw-yuv,width=320,height=240,framerate=(fraction)5/1" ! ffmpegcolorspace ! theoraenc keyframe-force=10 ! rtptheorapay ! identity dump=0 drop-probability=0.0 ! rtptheoradepay ! theoradec ! xvimagesink sync=false | tr '(),' ' ' | awk '$6="identity0:sink" && $9=="bytes" {b+=$8; print b}'
Me sitting at camera, moving some, still some, for 30sec from launch to closing xvimage, calculating kilobits per second:
30sec 320x240x5/1 smoke keyframe=64 | 630K bytes | 168 kbps |
30sec 320x240x5/1 theora keyframe-force=5 | 300K bytes | 80 kbps |
30sec 320x240x5/1 theora keyframe-force=10 | 200K bytes | 53 kbps |
30sec 320x240x5/1 theora keyframe-force=64 | 175K bytes | 47 kbps |
30sec 640x480x5/1 smoke keyframe=64 | 1635K bytes | 436 kbps |
30sec 640x480x5/1 theora keyframe-force=5 | 750K bytes | 200 kbps |
30sec 640x480x5/1 theora keyframe-force=10 | 600K bytes | 160 kbps |
30sec 640x480x5/1 theora keyframe-force=64 | 520K bytes | 139 kbps |
By copying and pasting the capability, I can use a udpsink-udpsrc pipeline. Both sides seem to be able to stop & restart smoothly:
So how can I capture those capabilities with Python, and make them available out-of-band?
(last modified 2010-01-06) [Login] |