登录 立即注册

首页 > 绿虎论坛 > 电脑 > Linux/Unix > ARM (发帖)

【备份】ROC-RK3588S-PC开发板资料


『回复列表(63|隐藏机器人聊天)』

20.

ffmpeg硬件解码正常,硬件编码报错。

图片.png(118.23 KB)

(/@Ta/2022-10-04 23:16//)

21.

https://github.com/JeffyCN/FFmpeg/issues/4

由于许可证问题,公司没有进一步的 ffmpeg 计划

我更喜欢使用 gstreamer

我已经在 RK3568 上使用官方补丁测试了 gstreamer,解码和编码都运行良好

瑞芯微官方不支持 ffmpeg 编码

看起来我应该改用 gstreamer。

(/@Ta/2022-10-04 23:41//)

22.

安装所有gstreamer插件:

apt list | grep '^gstreamer1.0' | grep -v dbg | awk -F/ '{print $1}' | xargs sudo apt install -y

查看可用的gstreamer插件和功能:

gst-inspect-1.0
gst-inspect-1.0 | grep -iE '264|265|avc|hevc|mpp'

图片.png(130.69 KB)

其中libav就是ffmpeg的核心库,可以支持ffmpeg支持的所有编码。

gst-inspect-1.0 libav

可以看到它支持的所有编码。

RK3588的硬解是libavffmpeg)提供的,硬编是rockchipmpp提供的。

含有mpp字样的功能支持硬件加速。

gstreamer官方插件文档(不含RK3588硬件加速)

gst-inspect-1.0命令得到的可用插件要比这个文档里列出的多。

https://thiblahute.github.io/GStreamer-doc/plugins.html?gi-language=c

gst-launch-1.0命令示例

https://gstreamer.freedesktop.org/documentation/tools/gst-launch.html?gi-language=c#pipeline-examples

(/@Ta/2022-10-05 12:58//)

23.

RK3588上的gstreamer硬件加速功能

gst-inspect-1.0 | grep -i mpp
rockchipmpp:  mppjpegdec: Rockchip's MPP JPEG image decoder
rockchipmpp:  mppvideodec: Rockchip's MPP video decoder
rockchipmpp:  mppjpegenc: Rockchip Mpp JPEG Encoder
rockchipmpp:  mppvp8enc: Rockchip Mpp VP8 Encoder
rockchipmpp:  mpph265enc: Rockchip Mpp H265 Encoder
rockchipmpp:  mpph264enc: Rockchip Mpp H264 Encoder
libav:  avdec_vp9_rkmpp: libav vp9 (rkmpp) decoder
libav:  avdec_vp8_rkmpp: libav vp8 (rkmpp) decoder
libav:  avdec_mpeg2_rkmpp: libav mpeg2 (rkmpp) decoder
libav:  avdec_mpeg1_rkmpp: libav mpeg1 (rkmpp) decoder
libav:  avdec_mpeg4_rkmpp: libav mpeg4 (rkmpp) decoder
libav:  avdec_hevc_rkmpp: libav hevc (rkmpp) decoder
libav:  avdec_h264_rkmpp: libav h264 (rkmpp) decoder
libav:  avdec_h263_rkmpp: libav h263 (rkmpp) decoder

查看某个功能的参数

gst-inspect-1.0 mpph265enc

图片.png(137.44 KB)

(/@Ta/2022-10-05 13:01//)

24.

gstreamerH.264 TS文件转为H.265,同时重新编码音频

注意:

  • mp4mux里的mp4表示输出文件是.mp4格式。
  • tsdemux里的ts表示输入文件是.ts格式。

如果是其他格式,要换成对应的名称。

gst-launch-1.0 -e \
    filesrc  location=/data/share/hdd/ps5/2022-08-27-09_17_12.ts \
        ! tsdemux name=dmx \
    \
    dmx. ! queue ! h264parse ! mppvideodec ! mpph265enc ! h265parse ! mx. \
    dmx. ! queue ! aacparse ! faad ! audioresample ! audioconvert ! voaacenc ! mx. \
    \
    mp4mux name=mx \
        ! progressreport update-freq=1 \
        ! filesink location=/data/share/hdd/ps5/output.mp4 \
# end

gstreamerH.264 TS文件转为H.265,不重新编码音频

未实现,以下只是减少了步骤,并未阻止重新编码音频。

gst-launch-1.0 -e \
    filesrc  location=/data/share/hdd/ps5/2022-08-27-09_17_12.ts \
        ! tsdemux name=dmx \
    \
    dmx. ! queue ! h264parse ! mppvideodec ! mpph265enc ! h265parse ! mx. \
    dmx. ! queue ! aacparse ! faad ! voaacenc ! mx. \
    \
    mp4mux name=mx \
        ! progressreport update-freq=1 \
        ! filesink location=/data/share/hdd/ps5/output.mp4 \
# end
(/@Ta/2022-10-05 12:12//)

25.

gstreamer把任意视频文件转为H.265视频编码+AAC音频编码

decodebin可用于自动检测输入文件的格式,并自动实现解码。

设置GST_DEBUG=2环境变量就能确认它确实自动选择了最佳的解码器:mppdec(RK3588的硬解)。

export GST_DEBUG=2
gst-launch-1.0 -e \
    filesrc  location=/data/share/hdd/ps5/2022-08-27-09_17_12.ts \
        ! decodebin name=dmx \
    \
    dmx. ! mpph265enc ! h265parse ! mx. \
    dmx. ! audioconvert ! voaacenc ! mx. \
    \
    mp4mux name=mx \
        ! progressreport update-freq=1 \
        ! filesink location=/data/share/hdd/ps5/output.mp4 \
# end

设置码率

设太低好像没作用,码率降到一定程度就降不下去了。

gst-launch-1.0 -e \
    filesrc  location=/data/share/hdd/ps5/2022-08-27-09_17_12.ts \
        ! decodebin name=dmx \
    \
    dmx. ! mpph265enc rc-mode=vbr bps-min=1 bps=100000 bps-max=400000 ! h265parse ! mx. \
    dmx. ! audioconvert ! voaacenc ! mx. \
    \
    mp4mux name=mx \
        ! progressreport update-freq=1 \
        ! filesink location=/data/share/hdd/ps5/output.mp4 \
# end

设置画质(0 - 51,越低画质越好)

设置qp-init可以得到比上面更低的码率。

gst-launch-1.0 -e \
    filesrc  location=/data/share/hdd/ps5/2022-08-27-09_17_12.ts \
        ! decodebin name=dmx \
    \
    dmx. ! mpph265enc rc-mode=fixqp qp-init=30 ! h265parse ! mx. \
    dmx. ! audioconvert ! voaacenc ! mx. \
    \
    mp4mux name=mx \
        ! progressreport update-freq=1 \
        ! filesink location=/data/share/hdd/ps5/output.mp4 \
# end
(/@Ta/2022-10-05 12:18//)

26.

@老虎会游泳,视频添加音乐和声音字幕用什么软件。
一加8Pro

(/@Ta/2022-10-05 02:01//)

27.
(/@Ta/2022-10-05 02:07//)

28.

@老虎会游泳
一加8Pro

(/@Ta/2022-10-05 02:11//)

29.

@老虎会游泳,你的rk3588有没有HDMI输入接口
一加8Pro

(/@Ta/2022-10-05 11:30//)

30.

@罐子,这个板型没有,只有一个HDMI输出。但我有USB接口的HDMI2.0采集卡(圆刚GC553),可以实现最高4K30帧、2K144帧、1080P240帧的HDMI输入,只要插到板子上就能用。

(/@Ta/2022-10-05 12:04//)

31.

@老虎会游泳,这都可以弄一个类似控控A2了
一加8Pro

(/@Ta/2022-10-05 13:06//)

32.

@罐子,还不够,USB怎么办

(/@Ta/2022-10-05 13:18//)

33.

gstreamer管道的图形化界面(GUI)

https://github.com/virinext/pipeviz.git

sudo apt install qtbase5-dev qttools5-dev libunwind-dev libglib2.0-dev libgstreamer1.0-dev '*qt*wayland*' pipewire
git clone https://github.com/virinext/pipeviz.git
cd pipeviz
mkdir build
cd build
qmake ../pipeviz.pro
make -j4 || make -j4
QT_QPA_PLATFORM=wayland ./pipeviz
(/@Ta/2022-10-05 14:35//)

34.

@老虎会游泳,你的3588开发版如果支持usb模拟那就只差个HID程序。
一加8Pro

(/@Ta/2022-10-05 13:38//)

35.
(/@Ta/2022-10-05 14:03//)

36.

https://www.likecs.com/show-204342238.html
USB OTG接口
有这个就能
一加8Pro

(/@Ta/2022-10-05 14:15//)

37.

@罐子,有

(/@Ta/2022-10-05 14:16//)

38.

@老虎会游泳,我有一个 3568就是只有4个网口个2个usb口,其他啥也没有了
一加8Pro

(/@Ta/2022-10-05 14:37//)

39.

@罐子,那你用什么口刷固件?

(/@Ta/2022-10-05 14:39//)

下一页 上一页 2/4页,共63楼

回复需要登录

12月22日 21:31 星期天

本站由hu60wap6华为CPU驱动

备案号: 京ICP备18041936号-1