【赛昉科技昉·星光RISC-V单板计算机试用体验】FFmpeg环境测试

描述

本文来源电子发烧友社区,作者:jf_06445065, 帖子地址:https://bbs.elecfans.com/jishu_2291062_1_1.html

背景

因为我本人是做音视频处理基础技术的,所以通常拿到一块板子后首先想到的是尝试把视频能力用起来,例如视频的编码,视频的解码,看一看编码的画质如何,解码性能如何,然后再进行下一步。

既然要尝试使用,那么首先就考虑装一个操作系统吧,第一件事是参考说明文档,去下载一个Fedora,然后刷到sd卡里面。

尝试使用

根据说明文档看,我下载的Fedora不可以直接刷到sd里面,因为他的格式是这样的:

Fedora-riscv64-jh7100-developer-xfce-Rawhide-20211226-214100.n.0-sda.raw.zst

要先安装一下zstd,然后

zstd Fedora-riscv64-jh7100-developer-xfce-Rawhide-20211226-214100.n.0-sda.raw.zst -o Fedora-riscv64-jh7100-developer-xfce-Rawhide-20211226-214100.n.0-sda.raw

然后用dd将Fedora-riscv64-jh7100-developer-xfce-Rawhide-20211226-214100.n.0-sda.raw写到SD卡即可

插入sd卡以后,用USB type-c接口的电源线插到板子上上电,插入HDMI链接到显示器,稍等一会就能够看到Fedora的启动界面,登录提示页面,按照手册中写的用户名密码输入后即可进入系统。

看一下系统的cpu信息

[riscv@fedora-starfive ~]$ cat //proc/cpuinfo
processor	: 0
hart		: 1
isa		: rv64imafdc
mmu		: sv39
uarch		: sifive,u74-mc

processor	: 1
hart		: 0
isa		: rv64imafdc
mmu		: sv39
uarch		: sifive,u74-mc```

还是个双核。看板子的介绍是支持视频编码的

尝试使用FFmpeg自动识别环境

但是手册里面并未说明该如何跑起来,于是我尝试用ffmpeg来跑一下。

[riscv@fedora-starfive ~]$ git clone git://source.ffmpeg.org/ffmpeg.git
正克隆到 'ffmpeg'...
remote: Enumerating objects: 666444, done.
remote: Counting objects: 100% (666444/666444), done.
remote: Compressing objects: 100% (130415/130415), done.
remote: Total 666444 (delta 539474), reused 661607 (delta 534726)
接收对象中: 100% (666444/666444), 131.55 MiB | 58.00 KiB/s, 完成.
处理 delta 中: 100% (539474/539474), 完成.
正在更新文件: 100% (7781/7781), 完成.
[riscv@fedora-starfive ~]$ cd ffmpeg/
[riscv@fedora-starfive ffmpeg]$ ls
Changelog  CONTRIBUTING.md  COPYING.LGPLv2.1  doc      INSTALL.md   libavfilter  libpostproc    LICENSE.md   presets    tests
compat     COPYING.GPLv2    COPYING.LGPLv3    ffbuild  libavcodec   libavformat  libswresample  MAINTAINERS  README.md  tools
configure  COPYING.GPLv3    CREDITS           fftools  libavdevice  libavutil    libswscale     Makefile     RELEASE
[riscv@fedora-starfive ffmpeg]$ cd ..
[riscv@fedora-starfive ~]$ mkdir build_ffmpeg
[riscv@fedora-starfive ~]$ cd build_ffmpeg/
[riscv@fedora-starfive build_ffmpeg]$ ../ffmpeg/configure --disable-everything --enable-ffmpeg --enable-decoder=h264,mpeg4 --enable-hwaccels
install prefix            /usr/local
source path               src
C compiler                gcc
C library                 glibc
ARCH                      riscv (generic)
big-endian                no
runtime cpu detection     yes
debug symbols             yes
strip symbols             yes
optimize for size         no
optimizations             yes
static                    yes
shared                    no
postprocessing support    no
network support           yes
threading support         pthreads
safe bitstream reader     yes
texi2html enabled         no
perl enabled              yes
pod2man enabled           yes
makeinfo enabled          yes
makeinfo supports HTML    yes
xmllint enabled           yes

External libraries:
alsa                    iconv                   libxcb_shape            libxcb_xfixes           zlib
bzlib                   libxcb                  libxcb_shm              lzma

External libraries providing hardware acceleration:
cuda_llvm               v4l2_m2m

Libraries:
avcodec                 avdevice                avfilter                avformat                avutil                  swresample              swscale

Programs:
ffmpeg                  ffprobe

Enabled decoders:
h263                    h264                    mpeg4

Enabled encoders:

Enabled hwaccels:

Enabled parsers:
h263                    mpeg4video

Enabled demuxers:

Enabled muxers:

Enabled protocols:

Enabled filters:
aformat                 atrim                   hflip                   transpose               vflip
anull                   format                  null                    trim

Enabled bsfs:

Enabled indevs:

Enabled outdevs:

License: LGPL version 2.1 or later
config_components.h is unchanged
libavutil/avconfig.h is unchanged
libavfilter/filter_list.c is unchanged
libavcodec/codec_list.c is unchanged
libavcodec/parser_list.c is unchanged
libavcodec/bsf_list.c is unchanged
libavformat/demuxer_list.c is unchanged
libavformat/muxer_list.c is unchanged
libavdevice/indev_list.c is unchanged
libavdevice/outdev_list.c is unchanged
libavformat/protocol_list.c is unchanged
ffbuild/config.sh is unchanged

后来经过咨询技术支持老师,给的反馈是需要自己重新buildroot,需要加载OMX相应的模块才能开启硬件codec模块。也就是说文档里面提到的支持的音视频处理相关的功能默认是不支持的,需要自己重新DIY一下,starfive官方提供的Fedora默认是用不起来的。

思考与总结:

**既然文档里面说支持了,至少BSP应该是需要直接提供出来的,而不是让用户DIY

既然starfive的提供的开发板里面元器件都是固定的,提供的基础能力都是固定的,扩展接口也是固定的,完全可以提供一个开箱即用的操作系统而不是让用户拿到板子后再去琢磨怎么build一下支持上**

参考一下树莓派的做法,最起码的开箱即用

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分