如何在 gstreamer 中使用 udpsink 在 jetson xavier 中流式传输 4k 视频
How to stream 4k video in jetson xavier using udpsink in gstreamer
我正在使用 jetson xavier NX,并且我已将 4k camera 连接到它。
我想使用 gstreamer 和 RTP 流式传输 4k 视频,并将流式视频数据作为 mkv 文件存储在另一个 jetson 上。然而,我的数据被压缩了很多,即使相机和 gstreamer 支持 4k,我也无法以 4k 发送它。
SENDER
gst-launch-1.0 nvarguscamerasrc sensor-id=0 ! "video/x-raw(memory:NVMM), width=(int)1944, height=(int)1096, format=(string)NV12" ! nvvidconv left=8 right=1928 top=8 bottom=1088 ! "video/x-raw(memory:NVMM), format=(string)NV12, width=(int)1920, height=(int)1080" ! omxh264enc qp-range=35,35:35,35:-1,-1 ! rtph264pay mtu=60000 ! udpsink clients=127.0.0.1:5000 sync=false
RECEIVER
gst-launch-1.0 udpsrc port=5000 caps="application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H264, sprop-parameter-sets=(string)\"Z0JAKJWgHgCJ+VA\=\,aM48gA\=\=\", payload=(int)96" ! rtph264depay ! h264parse ! matroskamux ! filesink location=test.mkv -e
我尝试将发件人端的分辨率更改为 3840x2160,但似乎没有用。我做错了什么
硬件编码器的最大宽度为 4096。
在此限制内,您可以使用:
SENDER
gst-launch-1.0 nvarguscamerasrc sensor-id=0 ! 'video/x-raw(memory:NVMM), format=NV12, width=3840, height=2160, framerate=30/1' ! nvv4l2h264enc insert-vui=1 insert-sps-pps=1 profile=2 qp-range=35,35:35,35:-1,-1 ! h264parse ! rtph264pay config-interval=1 ! udpsink clients=127.0.0.1:5000
RECEIVER
gst-launch-1.0 udpsrc port=5000 buffer-size=32000000 ! application/x-rtp,media=video,encoding-name=H264 ! rtpjitterbuffer latency=500 ! rtph264depay ! h264parse ! nvv4l2decoder ! nvegltransform ! nveglglessink
我正在使用 jetson xavier NX,并且我已将 4k camera 连接到它。 我想使用 gstreamer 和 RTP 流式传输 4k 视频,并将流式视频数据作为 mkv 文件存储在另一个 jetson 上。然而,我的数据被压缩了很多,即使相机和 gstreamer 支持 4k,我也无法以 4k 发送它。
SENDER
gst-launch-1.0 nvarguscamerasrc sensor-id=0 ! "video/x-raw(memory:NVMM), width=(int)1944, height=(int)1096, format=(string)NV12" ! nvvidconv left=8 right=1928 top=8 bottom=1088 ! "video/x-raw(memory:NVMM), format=(string)NV12, width=(int)1920, height=(int)1080" ! omxh264enc qp-range=35,35:35,35:-1,-1 ! rtph264pay mtu=60000 ! udpsink clients=127.0.0.1:5000 sync=false
RECEIVER
gst-launch-1.0 udpsrc port=5000 caps="application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H264, sprop-parameter-sets=(string)\"Z0JAKJWgHgCJ+VA\=\,aM48gA\=\=\", payload=(int)96" ! rtph264depay ! h264parse ! matroskamux ! filesink location=test.mkv -e
我尝试将发件人端的分辨率更改为 3840x2160,但似乎没有用。我做错了什么
硬件编码器的最大宽度为 4096。
在此限制内,您可以使用:
SENDER
gst-launch-1.0 nvarguscamerasrc sensor-id=0 ! 'video/x-raw(memory:NVMM), format=NV12, width=3840, height=2160, framerate=30/1' ! nvv4l2h264enc insert-vui=1 insert-sps-pps=1 profile=2 qp-range=35,35:35,35:-1,-1 ! h264parse ! rtph264pay config-interval=1 ! udpsink clients=127.0.0.1:5000
RECEIVER
gst-launch-1.0 udpsrc port=5000 buffer-size=32000000 ! application/x-rtp,media=video,encoding-name=H264 ! rtpjitterbuffer latency=500 ! rtph264depay ! h264parse ! nvv4l2decoder ! nvegltransform ! nveglglessink