Jetson-AGX-Orin gstreamer+rtmp+http-flv 推拉流

2024-07-16 1533阅读

Jetson-AGX-Orin gstreamer+rtmp+http-flv 推拉流

Orin是ubuntu20.04 ARM64架构的系统,自带gstreamer

Jetson-AGX-Orin gstreamer+rtmp+http-flv 推拉流
(图片来源网络,侵删)
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
VPS购买请点击我

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

目录[+]