清华主页 - 清华新闻 - 综合时讯 - 正文

Gstreamer系列(6):Gstreamer使用硬编码将mp4保存在arm平台(瑞芯微Rockchip)的视频中,并推拉流

        因为有些行业只能使用国产芯片,因此,国产芯片࿰在工程实践中也经常使用c;视频推拉流处理。瑞芯微(xff0;Rockchip)作为国产芯片的领导者,消费电子࿰常用c;智能家居�车载电子�工业控制等领域。 本文将介绍Gstreamer在瑞芯微Rockchip上的使用,适用于RK3568和RK3588,未测试其他型号。

1. Rockchip MPP安装。

gstreamer安装参考gstreamer,安装gstreamer的瑞芯微硬件编解码插件命令如下:

添加仓库。

sudo add-apt-repository ppa:george-coolpi/multimediasudo apt update。

gstreamer1.0安装-rockchip。

sudo apt-get install gstreamer.0-rockchip # 测试安装是否成功 gst-inspect-1.0 mppvideodec。

2. Rockchip MPP插件。

MPP编码插件mpph264enc,解码插件mppvideodec。

编码支持的格式包括:JPEG H264 H265 VP8。

解码支持的格式包括:JPEG, MPEG,VP8 VP9 H264 H265。

2.1 mpph264enc插件。

主要属性为:

width。: 宽度, 默认为o, 不缩放。
height。:面度, 默认为o, 不缩放。
rc-mode。: VBR可以选择码率控制模式, CBR和Fixed QP。
bps。: #xff00目标码率c; Fixed 忽略QP模式。
bps-max。: 最高码率 , Fixed 忽略QP膜式。
bps-min。:最低码率󿀌 Fixed 忽略QP模式。
gop。: Group Of Picture, 即两I帧之间的间隔。 如0表示只有一帧, 其余为P 帧, 1表示全部1帧, 2表示每两 帧为1帧, 即IPIP .形式。 默认为-1, 按帧率设置c; 也就是说,每秒有一个I帧。
level。: 表示SPS中的level_idc参数。
profile。: 表示SPS中的profile_idc参数。
rotation。: 旋转输入buffer, 可选0°'90°'180°'270°0 。

2.2 mppvideodec插件。

主要属性为:

rotation。:旋转角度󿀌默认为0°,可选0°,90°,180°,270°。

width。: 宽度,默认为0󿀌不缩放。

height。:高度,默认为0󿀌不缩放。

crop-rectangle。:裁剪,使用方式,即裁剪源起点,向下级发送宽度为w*h的图像。

format。:默认输出格式为0 "auto", 格式转换不进行。
fast-mode。:打开MPPFast Mode,在RK3588平台上,部分解码流程可以并行󿀌提高解码效率。默认开 启。
ignore-error。: 强制输出解码帧,忽略MPP解码错误。 默认开启。

3. 命令示例。

3.1 使用测试视频。

#1. 保存mp4gst-launch-1.0 videotestsrc is-live=1 ! video/x-raw,width=1280,height=720  ! videoconvert ! 264encmph ! h264parse ! qtmux  ! filesink  location=test.mp4 -e#2. rtp推流gst-launch-1.0 videotestsrc is-live=1 ! video/x-raw,width=1280,height=720  ! videoconvert ! 264encmph ! h264parse ! rtph264paypay ! udpsink host=127.0.0.1 port=1234。

3.2  使用摄像头。

#1. 保存mp4gst-launch-1.0 v4l2src device=/dev/video0 ! "video/x-raw, format=YUY2,width=640,height=480,framerate=30/1"  ! videoconvert ! 264encmph ! h264parse ! qtmux  ! filesink  location=test.mp4 -e#2. rtp推流gst-launch-1.0 v4l2src device=/dev/video0 ! "video/x-raw, format=YUY2,width=640,height=480,framerate=30/1" ! videoconvert ! 264encmph ! h264parse ! rtph264paypay ! udpsink host=127.0.0.1 port=1234。

3.3  RTP拉流。

gst-launch-1.0 udpsrc port=1234 buffer-size=60000000 caps="application/x-rtp,media=video, clock-rate=90000,payload=96, encoding-name=H264" ! rtpjitterbuffer latency=7 ! rtph264depay ! h264parse ! mppvideodec ! videoconvert !  autovideosink。  

4. 总结。

        本文分享了Gstreamer在瑞芯微平台上的安装方法和编解码插件的主要属性,以及常用的终端命令。

2025-06-24 12:43:45

相关新闻

清华大学新闻中心版权所有,清华大学新闻网编辑部维护,电子信箱: news@tsinghua.edu.cn
Copyright 2001-2020 news.tsinghua.edu.cn. All rights reserved.