读取: 1 http://mirrors.tuna.tsinghua.edu.cn/debian buster-backports/main amd64 libseccomp2 amd64 2.5.1-1~bpo10+1 [47.7 kB] 读取: 2 https://professional-packages.chinauos.com/desktop-professional eagle/main amd64 libstemmer0d amd64 0+svn585-1+b2 [63.3 kB] 读取: 3 http://mirrors.tuna.tsinghua.edu.cn/debian buster-backports/main amd64 bubblewrap amd64 0.4.1-3~bpo10+1 [42.3 kB] 读取: 4 https://professional-packages.chinauos.com/desktop-professional eagle/main amd64 libappstream-glib8 amd64 0.7.14-1+deb10u1+rebuild [137 kB] 读取: 5 http://mirrors.tuna.tsinghua.edu.cn/debian buster-backports/main amd64 libostree-1-1 amd64 2020.8-2+deb11u1~bpo10+1 [310 kB] 读取: 6 http://mirrors.tuna.tsinghua.edu.cn/debian buster-backports/main amd64 flatpak amd64 1.10.7-0+deb11u1~bpo10+1 [1,296 kB] 读取: 7 https://professional-packages.chinauos.com/desktop-professional eagle/main amd64 xdg-desktop-portal-kde amd64 5.14.5-1 [94.0 kB]
下列“新”软件包将被安装。 flatpak libappstream-glib8{a} libstemmer0d{a} xdg-desktop-portal-kde{a} 下列软件包将被升级: bubblewrap libostree-1-1 libseccomp2 3 个软件包被升级,新安装 4 个,0 个将被删除, 同时 138 个将不升级。
@罐子,嗯我的是type-c。
@罐子,那你用什么口刷固件?
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
@罐子,有
@罐子,怎么看支不支持,我只看到排针可以引出USB2.0。
https://wiki.t-firefly.com/zh_CN/ROC-RK3588S-PC/interface_definition.html#zheng-ji-jie-kou-ding-yi
@罐子,还不够,USB怎么办
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
安装所有
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'
其中
libav
就是ffmpeg
的核心库,可以支持ffmpeg
支持的所有编码。gst-inspect-1.0 libav
可以看到它支持的所有编码。
RK3588的硬解是
libav
(ffmpeg
)提供的,硬编是rockchipmpp
提供的。含有
mpp
字样的功能支持硬件加速。
gstreamer
官方插件文档(不含RK3588硬件加速)用
gst-inspect-1.0
命令得到的可用插件要比这个文档里列出的多。https://thiblahute.github.io/GStreamer-doc/plugins.html?gi-language=c
gst-launch-1.0
命令示例
用
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
用
gstreamer
把H.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
用
gstreamer
把H.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
@罐子,这个板型没有,只有一个HDMI输出。但我有USB接口的HDMI2.0采集卡(圆刚GC553),可以实现最高4K30帧、2K144帧、1080P240帧的HDMI输入,只要插到板子上就能用。
https://github.com/JeffyCN/FFmpeg/issues/4
由于许可证问题,公司没有进一步的 ffmpeg 计划
我更喜欢使用 gstreamer
我已经在 RK3568 上使用官方补丁测试了 gstreamer,解码和编码都运行良好
瑞芯微官方不支持 ffmpeg 编码
看起来我应该改用 gstreamer。
ffmpeg硬件解码正常,硬件编码报错。
@幻阳化翼,嗯,我之后可能会再买个M.2接上。
@幻阳化翼,我的盘是USB 3.0 1TB机械移动硬盘
@上善若水,这样一来,就还有一种可能性,因为贴错了我的单,那天仓库里后续的订单可能都贴错了🤣🤣🤣
那他们就有得忙了🤣🤣🤣
@上善若水,至于他们为什么会打印两张我的运单,可能和我取消过一次订单有关。我本来想买一个风扇,付款后取消了订单,改成买两个。前一个运单可能已经打好了,取消后他们可能忘记扔掉,于是贴到下一个人的快递上了。当时我付款后几分钟内就取消了,系统秒同意,但如果他们有自动打单系统,运单也可能会被打出来。
而且非常巧的是,那个有问题的单是顺丰的,上面不会写内容物是什么。所以就算贴错了,仓库也很难发现。另一个中通的就写了是风扇。顺便一提,快递抽到顺丰也完全是合理的,毕竟运费收了我18。