Difference between revisions of "Video stream"
Joost.Weijs (talk | contribs) |
|||
| (3 intermediate revisions by 2 users not shown) | |||
| Line 2: | Line 2: | ||
== Enable IMX219 camera over the microcoax cable == | == Enable IMX219 camera over the microcoax cable == | ||
| + | '''In current release''', the IMX219 camera over microcoax is enabled by default and available as <code>/dev/video0</code>. It does not required to enable the overlay as described below. | ||
# List of available overlays for your board can be listed using: | # List of available overlays for your board can be listed using: | ||
#: <code> sudo /opt/nvidia/jetson-io/config-by-hardware.py -l</code> | #: <code> sudo /opt/nvidia/jetson-io/config-by-hardware.py -l</code> | ||
| Line 14: | Line 15: | ||
#: <code>reboot</code> | #: <code>reboot</code> | ||
# After reboot and login again, look if IMX219 device was detected: | # After reboot and login again, look if IMX219 device was detected: | ||
| − | #: <code>dmesg | grep | + | #: <code>dmesg | grep imx219</code> |
User who would like more of a guided way to enable the camera could use: <code> sudo /opt/nvidia/jetson-io/jetson-io.py</code> | User who would like more of a guided way to enable the camera could use: <code> sudo /opt/nvidia/jetson-io/jetson-io.py</code> | ||
== Gstreamer pipeline == | == Gstreamer pipeline == | ||
| + | See https://docs.nvidia.com/jetson/l4t/index.html#page/Tegra%20Linux%20Driver%20Package%20Development%20Guide/accelerated_gstreamer.html#wwpID0E0KR0HA for example GStreamer pipelines that can be used on the Jetson. | ||
| + | |||
| + | To send a RTP stream over the network from the Jetson: | ||
| + | $ gst-launch-1.0 nvarguscamerasrc ! 'video/x-raw(memory:NVMM), format=NV12, width=1920, height=1080' ! nvv4l2h264enc insert-sps-pps=true ! h264parse ! rtph264pay pt=96 ! udpsink host=<<<DEST IP>>> port=8001 sync=false -e | ||
| + | Here, replace <<<DEST IP>>> with the IP of the computer where you want to send the video stream to. | ||
| + | |||
| + | To choose a specific camera, use the <code>sensor-id</code> property of <code>nvarguscamerasrc</code>. | ||
| + | To view all available properties: | ||
| + | $ gst-inspect-1.0 nvarguscamerasrc | ||
| + | This can of course be applied to any GStreamer element. | ||
=== Host running Ubuntu 20.04 LTS === | === Host running Ubuntu 20.04 LTS === | ||
| + | To receive the stream (created using the pipeline given above on the Jetson): | ||
| + | $ gst-launch-1.0 udpsrc port=8001 caps='application/x-rtp, encoding-name=(string)H264, payload=(int)96' ! rtph264depay ! queue ! h264parse ! avdec_h264 ! autovideosink -e | ||
| − | + | This will open a video window showing the stream. | |
Latest revision as of 15:05, 10 November 2021
The following instructions assume that the user is connected over SSH or use a terminal in a remote desktop.
Enable IMX219 camera over the microcoax cable
In current release, the IMX219 camera over microcoax is enabled by default and available as /dev/video0. It does not required to enable the overlay as described below.
- List of available overlays for your board can be listed using:
sudo /opt/nvidia/jetson-io/config-by-hardware.py -l- It should return:
Header 1 [default]: Jetson Nano CSI Connector Available hardware modules: 1. IMX219 Microcoax Connector
- Enable the camera:
sudo /opt/nvidia/jetson-io/config-by-hardware.py -n "IMX219 Microcoax Connector"
- Reboot:
reboot
- After reboot and login again, look if IMX219 device was detected:
dmesg | grep imx219
User who would like more of a guided way to enable the camera could use: sudo /opt/nvidia/jetson-io/jetson-io.py
Gstreamer pipeline
See https://docs.nvidia.com/jetson/l4t/index.html#page/Tegra%20Linux%20Driver%20Package%20Development%20Guide/accelerated_gstreamer.html#wwpID0E0KR0HA for example GStreamer pipelines that can be used on the Jetson.
To send a RTP stream over the network from the Jetson:
$ gst-launch-1.0 nvarguscamerasrc ! 'video/x-raw(memory:NVMM), format=NV12, width=1920, height=1080' ! nvv4l2h264enc insert-sps-pps=true ! h264parse ! rtph264pay pt=96 ! udpsink host=<<<DEST IP>>> port=8001 sync=false -e
Here, replace <<<DEST IP>>> with the IP of the computer where you want to send the video stream to.
To choose a specific camera, use the sensor-id property of nvarguscamerasrc.
To view all available properties:
$ gst-inspect-1.0 nvarguscamerasrc
This can of course be applied to any GStreamer element.
Host running Ubuntu 20.04 LTS
To receive the stream (created using the pipeline given above on the Jetson):
$ gst-launch-1.0 udpsrc port=8001 caps='application/x-rtp, encoding-name=(string)H264, payload=(int)96' ! rtph264depay ! queue ! h264parse ! avdec_h264 ! autovideosink -e
This will open a video window showing the stream.