Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
hardware:video-pis [2024/04/02 22:08] – undo previous change pat | hardware:video-pis [2024/07/15 16:32] (current) – fix formatting wtf | ||
---|---|---|---|
Line 5: | Line 5: | ||
== gstreamer with Auvidea B101 HDMI-CSI2-Bridge | == gstreamer with Auvidea B101 HDMI-CSI2-Bridge | ||
- | * max. supported resolution: 1080p30. [[https:// | + | * max. supported resolution: 1080p30. [[https:// |
* The iframe-peroid of 2 frames is quiet aggressive. | * The iframe-peroid of 2 frames is quiet aggressive. | ||
* I/O-mode = auto. Result unclear, it seems popular stating DMAbuf here. Investigate! | * I/O-mode = auto. Result unclear, it seems popular stating DMAbuf here. Investigate! | ||
+ | |||
+ | Hint: For better reading pipelines are described as pipeline files which one can use with `cat pipeline-file.txt | xargs gst-launch-1.0`. | ||
=== SMPTE2022-1 FEC streaming (multicast/ | === SMPTE2022-1 FEC streaming (multicast/ | ||
Line 23: | Line 25: | ||
* Don't forget to remove " | * Don't forget to remove " | ||
- | Sender, using Audio from HDMI-In and sending video-input to display: | + | Sender, using audio from HDMI-In and sending video-input to first HDMI-display |
- | Hint: For better reading pipelines are described as pipeline files which one can use with `gst-launch-1.0 -f pipeline-file.txt`. | ||
- | ``` | + | |
- | rtpbin | + | name=rtp |
- | name=rtp | + | fec-encoders=' |
- | fec-encoders=' | + | |
- | + | v4l2src | |
- | v4l2src | + | device=/ |
- | device=/ | + | io-mode=0 |
- | io-mode=0 | + | do-timestamp=true |
- | do-timestamp=true | + | ! " |
- | ! " | + | ! tee |
- | ! tee | + | name=input |
- | name=input | + | ! v4l2h264enc |
- | ! v4l2h264enc | + | output-io-mode=0 |
- | output-io-mode=0 | + | extra-controls=" |
- | extra-controls=" | + | ! " |
- | ! " | + | ! h264parse |
- | ! h264parse | + | ! mpegtsmux |
- | ! mpegtsmux | + | name=mux |
- | name=mux | + | ! rtpmp2tpay |
- | ! rtpmp2tpay | + | ssrc=0 |
- | ssrc=0 | + | ! rtp.send_rtp_sink_0 |
- | ! rtp.send_rtp_sink_0 | + | |
- | + | rtp.send_rtp_src_0 | |
- | rtp.send_rtp_src_0 | + | ! udpsink |
- | ! udpsink | + | host=224.0.23.1 |
- | host=224.0.23.1 | + | port=5000 |
- | port=5000 | + | multicast-iface=eth0 |
- | multicast-iface=eth0 | + | |
- | + | rtp.send_fec_src_0_0 | |
- | rtp.send_fec_src_0_0 | + | ! udpsink |
- | ! udpsink | + | host=224.0.23.1 |
- | host=224.0.23.1 | + | port=5002 |
- | port=5002 | + | async=false |
- | async=false | + | multicast-iface=eth0 |
- | multicast-iface=eth0 | + | |
- | + | rtp.send_fec_src_0_1 | |
- | rtp.send_fec_src_0_1 | + | ! udpsink |
- | ! udpsink | + | host=224.0.23.1 |
- | host=224.0.23.1 | + | port=5004 |
- | port=5004 | + | async=false |
- | async=false | + | multicast-iface=eth0 |
- | multicast-iface=eth0 | + | |
- | + | alsasrc | |
- | alsasrc | + | device=hw: |
- | device=hw: | + | do-timestamp=true |
- | do-timestamp=true | + | ! " |
- | ! " | + | ! audioconvert |
- | ! audioconvert | + | ! voaacenc |
- | ! voaacenc | + | bitrate=48000 |
- | bitrate=48000 | + | ! aacparse |
- | ! aacparse | + | ! queue |
- | ! queue | + | ! mux. |
- | ! mux. | + | |
- | + | input. | |
- | input. | + | ! queue |
- | ! queue | + | ! videoconvert |
- | ! videoconvert | + | ! fbdevsink |
- | ! fbdevsink | + | device="/ |
- | device="/ | + | sync=false |
- | sync=false | + | |
- | ``` | + | |
Receiver, with audio-out on Headphone-jack: | Receiver, with audio-out on Headphone-jack: | ||
- | ``` | + | |
- | rtpbin | + | latency=100 |
- | latency=100 | + | fec-decoders=' |
- | fec-decoders=' | + | name=rtp |
- | name=rtp | + | |
- | + | udpsrc | |
- | udpsrc | + | address=224.0.23.1 |
- | address=224.0.23.1 | + | port=5002 |
- | port=5002 | + | caps=" |
- | caps=" | + | ! queue |
- | ! queue | + | ! rtp.recv_fec_sink_0_0 |
- | ! rtp.recv_fec_sink_0_0 | + | |
- | + | udpsrc | |
- | udpsrc | + | address=224.0.23.1 |
- | address=224.0.23.1 | + | port=5004 |
- | port=5004 | + | caps=" |
- | caps=" | + | ! queue |
- | ! queue | + | ! rtp.recv_fec_sink_0_1 |
- | ! rtp.recv_fec_sink_0_1 | + | |
- | + | udpsrc | |
- | udpsrc | + | address=224.0.23.1 |
- | address=224.0.23.1 | + | port=5000 |
- | port=5000 | + | caps=" |
- | caps=" | + | ! queue |
- | ! queue | + | ! netsim |
- | ! netsim | + | drop-probability=0.01 |
- | drop-probability=0.01 | + | ! rtp.recv_rtp_sink_0 |
- | ! rtp.recv_rtp_sink_0 | + | |
- | + | rtp. | |
- | rtp. | + | ! queue |
- | ! queue | + | ! decodebin |
- | ! decodebin | + | name=decode |
- | name=decode | + | ! videoconvert |
- | ! videoconvert | + | ! queue |
- | ! queue | + | ! kmssink |
- | ! kmssink | + | |
- | + | decode. | |
- | decode. | + | ! audioconvert |
- | ! audioconvert | + | ! queue |
- | ! queue | + | ! alsasink |
- | ! alsasink | + | card-name=" |
- | card-name=" | + | |
- | ``` | + | |
=== SRT streaming (unicast), audio and display-loop-out included | === SRT streaming (unicast), audio and display-loop-out included | ||
Line 144: | Line 141: | ||
Sender, using audio from HDMI-In and sending video-input to display: | Sender, using audio from HDMI-In and sending video-input to display: | ||
- | ``` | + | |
- | v4l2src | + | device=/ |
- | device=/ | + | io-mode=0 |
- | io-mode=0 | + | do-timestamp=true |
- | do-timestamp=true | + | ! " |
- | ! " | + | ! tee |
- | ! tee | + | name=input |
- | name=input | + | ! v4l2h264enc |
- | ! v4l2h264enc | + | output-io-mode=0 |
- | output-io-mode=0 | + | extra-controls=" |
- | extra-controls=" | + | ! " |
- | ! " | + | ! mpegtsmux |
- | ! mpegtsmux | + | name=mux |
- | name=mux | + | ! srtsink |
- | ! srtsink | + | uri=srt://: |
- | uri=srt://: | + | latency=40 |
- | latency=40 | + | mode=listener |
- | mode=listener | + | wait-for-connection=true |
- | wait-for-connection=true | + | |
- | + | input. | |
- | input. | + | ! queue |
- | ! queue | + | ! videoconvert |
- | ! videoconvert | + | ! fbdevsink |
- | ! fbdevsink | + | sync=false |
- | sync=false | + | |
- | + | alsasrc | |
- | alsasrc | + | device=hw: |
- | device=hw: | + | do-timestamp=true |
- | do-timestamp=true | + | ! " |
- | ! " | + | ! audioconvert |
- | ! audioconvert | + | ! voaacenc |
- | ! voaacenc | + | bitrate=48000 |
- | bitrate=48000 | + | ! aacparse |
- | ! aacparse | + | ! queue |
- | ! queue | + | ! mux. |
- | ! mux. | + | |
- | ``` | + | |
Receiver, with audio-out on Headphone-jack: | Receiver, with audio-out on Headphone-jack: | ||
- | ``` | + | |
- | srtclientsrc | + | latency=20 |
- | latency=20 | + | mode=caller |
- | mode=caller | + | uri=srt:// |
- | uri=srt:// | + | ! tsdemux |
- | ! tsdemux | + | latency=40 |
- | latency=40 | + | name=demux |
- | name=demux | + | |
+ | demux. | ||
+ | ! queue | ||
+ | ! decodebin | ||
+ | name=decode | ||
+ | ! videoconvert | ||
+ | ! queue | ||
+ | ! kmssink | ||
+ | |||
+ | demux. | ||
+ | ! queue | ||
+ | ! avdec_aac | ||
+ | ! audioconvert | ||
+ | ! alsasink | ||
+ | card-name=" | ||
- | demux. | ||
- | ! queue | ||
- | ! decodebin | ||
- | name=decode | ||
- | ! videoconvert | ||
- | ! queue | ||
- | ! kmssink | ||
- | |||
- | demux. | ||
- | ! queue | ||
- | ! avdec_aac | ||
- | ! audioconvert | ||
- | ! alsasink | ||
- | card-name=" | ||
- | ``` | ||
=== RIST streaming (multicast/ | === RIST streaming (multicast/ | ||
Line 219: | Line 213: | ||
Sender, using audio from HDMI-In and sending video-input to display: | Sender, using audio from HDMI-In and sending video-input to display: | ||
- | ``` | + | |
- | v4l2src | + | device=/ |
- | device=/ | + | io-mode=0 |
- | io-mode=0 | + | do-timestamp=true |
- | do-timestamp=true | + | ! " |
- | ! " | + | ! tee |
- | ! tee | + | name=input |
- | name=input | + | ! v4l2h264enc |
- | ! v4l2h264enc | + | output-io-mode=0 |
- | output-io-mode=0 | + | extra-controls=" |
- | extra-controls=" | + | ! " |
- | ! " | + | ! mpegtsmux |
- | ! mpegtsmux | + | name=mux |
- | name=mux | + | ! rtpmp2tpay |
- | ! rtpmp2tpay | + | ! ristsink |
- | ! ristsink | + | address=224.0.23.1 |
- | address=224.0.23.1 | + | port=5004 |
- | port=5004 | + | multicast-iface=eth0 |
- | multicast-iface=eth0 | + | |
- | + | input. | |
- | input. | + | ! queue |
- | ! queue | + | ! videoconvert |
- | ! videoconvert | + | ! fbdevsink |
- | ! fbdevsink | + | sync=false \ |
- | sync=false \ | + | |
- | + | alsasrc | |
- | alsasrc | + | device=hw: |
- | device=hw: | + | do-timestamp=true |
- | do-timestamp=true | + | ! " |
- | ! " | + | ! audioconvert |
- | ! audioconvert | + | ! voaacenc |
- | ! voaacenc | + | bitrate=48000 |
- | bitrate=48000 | + | ! aacparse |
- | ! aacparse | + | ! queue |
- | ! queue | + | ! mux. |
- | ! mux. | + | |
- | ``` | + | |
Receiver, with audio-out on headphone-jack: | Receiver, with audio-out on headphone-jack: | ||
- | ``` | + | |
- | ristsrc | + | address=224.0.23.1 |
- | address=224.0.23.1 | + | receiver-buffer=200 |
- | receiver-buffer=200 | + | reorder-section=20 |
- | reorder-section=20 | + | ! rtpmp2tdepay |
- | ! rtpmp2tdepay | + | ! tsdemux |
- | ! tsdemux | + | latency=50 |
- | latency=50 | + | name=demux |
- | name=demux | + | |
- | + | demux. | |
- | demux. | + | ! queue |
- | ! queue | + | ! decodebin |
- | ! decodebin | + | name=decode |
- | name=decode | + | ! videoconvert |
- | ! videoconvert | + | ! queue |
- | ! queue | + | ! kmssink |
- | ! kmssink | + | |
- | + | demux. | |
- | demux. | + | ! queue |
- | ! queue | + | ! avdec_aac |
- | ! avdec_aac | + | ! audioconvert |
- | ! audioconvert | + | ! alsasink |
- | ! alsasink | + | card-name=" |
- | card-name=" | + | |
- | ``` | + |