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

相关推荐

  1. Jetson-AGX-Orin gstreamer+rtmp+http-flv

    2024-07-13 12:08:02       21 阅读
  2. ios

    2024-07-13 12:08:02       68 阅读
  3. ffmpegflv到rtmp

    2024-07-13 12:08:02       27 阅读
  4. ffmpeg参数汇总-1

    2024-07-13 12:08:02       64 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-13 12:08:02       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-13 12:08:02       72 阅读
  3. 在Django里面运行非项目文件

    2024-07-13 12:08:02       58 阅读
  4. Python语言-面向对象

    2024-07-13 12:08:02       69 阅读

热门阅读

  1. Mybatis-Plus最优化持久层开发

    2024-07-13 12:08:02       18 阅读
  2. 389. 找不同

    2024-07-13 12:08:02       21 阅读
  3. Python水平怎么样才能就业?

    2024-07-13 12:08:02       49 阅读
  4. Git: fatal: cannot lock ref‘HEAD‘: Unable to create

    2024-07-13 12:08:02       26 阅读
  5. 大数据学习之 scala基础(补充)

    2024-07-13 12:08:02       24 阅读
  6. Perl中的切分艺术:深入探索split函数的神秘力量

    2024-07-13 12:08:02       22 阅读
  7. 【面试题】Golang 之Channel底层原理 (第三篇)

    2024-07-13 12:08:02       22 阅读
  8. 数据结构

    2024-07-13 12:08:02       26 阅读
  9. MySQL 面试题

    2024-07-13 12:08:02       25 阅读
  10. 【笔记】在虚拟机中输入 yum makecache报错

    2024-07-13 12:08:02       26 阅读
  11. 如何使用键盘优雅地使用浏览器

    2024-07-13 12:08:02       29 阅读
  12. C++ 开源库

    2024-07-13 12:08:02       28 阅读
  13. Spark SQL----CREATE FUNCTION

    2024-07-13 12:08:02       22 阅读
  14. 有免代码开发平台,还需要学习软件工程吗?

    2024-07-13 12:08:02       22 阅读