Adding key-frame and bitrate target option in vp8 encoder.
[libre-streamer.git] / gstream_pipeline_by_quidam
1 Primary command (need to be enhanced):
2 --------------------------------------
3 One line = one pipeline
4
5 gst-launch-1.0 -e rtspsrc location=rtsp://192.168.48.2:554 latency=100 ! queue ! rtpjpegdepay ! tee name=rawjpeg ! queue ! jpegdec max-errors=-1 ! tee name=rawvideo ! queue ! xvimagesink
6 rawjpeg. ! queue ! matroskamux name=mux
7 pulsesrc ! queue ! vorbisenc quality=0.3 ! tee name=oggaudio
8 pulsesrc ! queue ! flacenc ! queue ! queue ! mux. mux. ! queue ! filesink location=popo
9 rawvideo. ! videoscale ! video/x-raw, width=640, height=360 ! vp8enc min_quantizer=13 max_quantizer=13 cpu-used=5 deadline=1000000 threads=2 sharpness=7 ! queue ! webmmux name=mux2
10 oggaudio. ! queue ! queue ! mux2. mux2. ! queue ! tee name=streamlo ! queue ! filesink location=popo2
11 oggaudio. ! queue ! oggmux ! queue ! tee name=streamaudio ! queue ! filesink location=popo4
12 streamlo. ! queue ! shout2send ip=live.fsf.org port=80 mount=testlo.ogv password=icecastfsf1
13 streamaudio. ! queue ! shout2send ip=live.fsf.org port=80 mount=testaudio.ogv password=icecastfsf1
14
15 ##
16 ## TODO: Investigate double queues and double mux.
17 ## Use multiple bins (one for each flow) and ghostpads to connect them
18 ##
19
20 Lightened command (to do CPU load benchmarking):
21 Do changes here and merge it with the primary command
22 -----------------------------------------------------
23 gst-launch-1.0 -e rtspsrc location=rtsp://192.168.48.2:554 latency=100 ! queue ! rtpjpegdepay ! queue ! jpegdec max-errors=-1 ! tee name=rawvideo ! queue ! xvimagesink
24 pulsesrc ! queue ! vorbisenc quality=0.3 ! tee name=oggaudio
25 rawvideo. ! vp8enc min_quantizer=13 max_quantizer=13 cpu-used=5 deadline=1000000 threads=2 sharpness=7 ! queue ! webmmux name=mux2
26 oggaudio. ! queue ! queue ! mux2. mux2. ! queue ! tee name=streamlo ! queue ! filesink location=popo2
27
28 Latest version:
29 ---------------
30 Multilines version (visualisation and setting):
31
32 gst-launch-1.0 -e rtspsrc location=rtsp://192.168.48.2:554 latency=100 ! queue ! rtpjpegdepay ! tee name=rawjpeg ! queue ! jpegdec max-errors=-1 ! tee name=rawvideo ! queue ! xvimagesink
33 pulsesrc ! queue ! vorbisenc quality=0.3 ! tee name=oggaudio
34 rawvideo. ! videoscale ! video/x-raw, width=640, height=360 ! vp8enc min_quantizer=13 max_quantizer=13 cpu-used=5 deadline=1000000 threads=2 sharpness=7 ! queue ! webmmux name=mux2
35 oggaudio. ! queue ! queue ! mux2. mux2. ! queue ! tee name=streamlo ! queue ! filesink location=popo2
36 oggaudio. ! queue ! oggmux ! queue ! tee name=streamaudio ! queue ! filesink location=popo4
37 streamlo. ! queue ! shout2send ip=live.fsf.org port=80 mount=testlo.ogv password=icecastfsf1
38 streamaudio. ! queue ! shout2send ip=live.fsf.org port=80 mount=testaudio.ogv password=icecastfsf1
39
40 One line version (prototyping/test):
41 To fix: min_quantizer and/or max_quantizer fail the initialization of vp8enc
42
43 gst-launch-1.0 -e rtspsrc location=rtsp://192.168.48.2:554 latency=100 ! queue ! rtpjpegdepay ! tee name=rawjpeg ! queue ! jpegdec max-errors=-1 ! tee name=rawvideo ! queue ! xvimagesink pulsesrc ! queue ! vorbisenc quality=0.3 ! tee name=oggaudio rawvideo. ! videoscale ! video/x-raw, width=640, height=360 ! vp8enc min_quantizer=13 max_quantizer=13 cpu-used=5 deadline=1000000 threads=2 sharpness=7 ! queue ! webmmux name=mux2 oggaudio. ! queue ! queue ! mux2. mux2. ! queue ! tee name=streamlo ! queue ! filesink location=popo2 oggaudio. ! queue ! oggmux ! queue ! tee name=streamaudio ! queue ! filesink location=popo4 streamlo. ! queue ! shout2send ip=live.fsf.org port=80 mount=testlo.ogv password=icecastfsf1 streamaudio. ! queue ! shout2send ip=live.fsf.org port=80 mount=testaudio.ogv password=icecastfsf1
44
45 Webcam feed:
46 ------------
47 gst-launch-1.0 v4l2src device=/dev/video1 ! video/x-raw,width=640,height=480 ! queue ! xvimagesink sync=false