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

回复列表(63|隐藏机器人聊天)
  • @Ta / 2022-10-04 / /

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

    图片.png(118.23 KB)

  • @Ta / 2022-10-04 / /

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

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

    我更喜欢使用 gstreamer

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

    瑞芯微官方不支持 ffmpeg 编码

    看起来我应该改用 gstreamer。

  • @Ta / 2022-10-05 / /

    安装所有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 / /

    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 / /

    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 / /

    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 / /

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

  • @Ta / 2022-10-05 / /

    @老虎会游泳
    一加8Pro

  • @Ta / 2022-10-05 / /

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

  • @Ta / 2022-10-05 / /

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

  • @Ta / 2022-10-05 / /

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

  • @Ta / 2022-10-05 / /

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

  • @Ta / 2022-10-05 / /

    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 / /

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

  • @Ta / 2022-10-05 / /
  • @Ta / 2022-10-05 / /

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

  • @Ta / 2022-10-05 / /

    @罐子,有

  • @Ta / 2022-10-05 / /

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

  • @Ta / 2022-10-05 / /

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

添加新回复
回复需要登录