Jetson-AGX-Orin gstreamer+rtmp+http-flv 推拉流
Jetson-AGX-Orin gstreamer+rtmp+http-flv 推拉流
Orin是ubuntu20.04 ARM64架构的系统,自带gstreamer
(图片来源网络,侵删)
1、 测试摄像头
测试摄像头可以用v4l2-ctl命令或者用gst-launch-1.0
#用v4l2-ctl测试摄像头,有尖角符号持续打印则正常 v4l2-ctl -d /dev/video0 --set-fmt-video=width=1920,height=1080,pixelformat=UYVY --stream-mmap #gst-launch-1.0 测试摄像头,有摄像头画面实时输出则正常 gst-launch-1.0 v4l2src device="/dev/video0" ! "video/x-raw, width=1920, height=1080, format=(string)UYVY" ! autovideosink
2、安装nvidia-jetpack,使用Orin的硬件编解码器
sudo apt-get update sudo apt-get install nvidia-jetpack
3 、安装SRS流媒体服务器
SRS(Simple Realtime Server)是一个简单高效的实时视频服务器,支持RTMP、WebRTC、HLS、HTTP-FLV、SRT等多种实时流媒体协议。
cd /opt git clone -b develop https://gitee.com/ossrs/srs.git cd srs sudo mkdir install cd srs/trunk ./configure --prefix=/opt/srs/install make sudo make install
4、配置SRS流媒体服务器
修改/opt/srs/install/conf/srs.conf,使其内容如下
# main config for srs. # @see full.conf for detail config. listen 1935; max_connections 1000; #srs_log_tank file; #srs_log_file ./objs/srs.log; daemon on; http_api { enabled on; listen 1985; } http_server { enabled on; listen 8080; dir ./objs/nginx/html; } rtc_server { enabled on; listen 8000; # UDP port # @see https://ossrs.net/lts/zh-cn/docs/v4/doc/webrtc#config-candidate candidate $CANDIDATE; } vhost __defaultVhost__ { #最小延迟打开,默认是打开的,该选项打开的时候,mr默认关闭。 min_latency on; #Merged-Read,针对RTMP协议,为了提高性能,SRS对于上行的read使用merged-read,即SRS在读写时一次读取N毫秒的数据 mr { enabled off; #默认350ms,范围[300-2000] #latency 350; } #Merged-Write,SRS永远使用Merged-Write,即一次发送N毫秒的包给客户端。这个算法可以将RTMP下行的效率提升5倍左右,范围[350-1800] mw_latency 100; #enabled on; #https://github.com/simple-rtmp-server/srs/wiki/v2_CN_LowLatency#gop-cache gop_cache off; #配置直播队列的长度,服务器会将数据放在直播队列中,如果超过这个长度就清空到最后一个I帧 #https://github.com/simple-rtmp-server/srs/wiki/v2_CN_LowLatency#%E7%B4%AF%E7%A7%AF%E5%BB%B6%E8%BF%9F queue_length 10; #http_flv配置 http_remux { enabled on; mount [vhost]/[app]/[stream].flv; hstrs on; } }
5、运行SRS流媒体服务器,会在后台起一个SRS服务
cd /opt/srs/install ./objs/srs -c conf/srs.conf #起完以后可以通过tail 实时查看日志 知晓服务推拉流情况 tail -f ./objs/srs.log
6、gstreamer进行rtmp推流
以下是摄像头的rtmp推流。采用的Orin的硬件编码器和硬件图像格式转换引擎。
gst-launch-1.0 v4l2src device="/dev/video0" ! 'video/x-raw, format=(string)UYVY, width=(int)1920, height=(int)1080' ! nvvidconv ! omxh264enc profile=2 preset-level=2 MeasureEncoderLatency=1 control-rate=0 bitrate=10000000 iframeinterval=50 ! 'video/x-h264, stream-format=(string)byte-stream' ! h264parse ! flvmux ! rtmpsink location='rtmp://127.0.0.1/live/livestream0/mystream'
7、 http-flv拉流实时播放
电脑采用网线直连Orin设备,然后使用flv.js 通过网页实时播放
#以下是摄像头http-flv实时拉流播放,地址与上面的rtmp推流地址相对应 http://192.168.1.102:8080/live/livestream0/mystream.flv
文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。