ffmpeg - 如何在 yocto 中编译 ffmpeg 以获得可用的二进制文件
问题描述
在我们的 yocto 项目中,SDK 有默认的“poky/meta/recipes-multimedia/ffmpeg/ffmpeg_3.3.3.bb”bb 文件。这是我们的 bbappend 文件 meta-qti-bsp/recipes-multimedia/ffmpeg/ ffmpeg_%.bbappend
EXTRA_OEMAKE = ""
FILES_${PN} += "/lib/lib*.so.*" FILES_${PN} += "/lib/pkgconfig/*" FILES_${PN}-dev += "/usr/share/*" FILES_${PN}-dev += "/lib/lib*.so"
PACKAGECONFIG = "avdevice avfilter avcodec avformat swresample swscale postproc bzlib gpl theora"
# Support multilib compilation for libav PROVIDES += "${MLPREFIX}libav"
EXTRA_CFLAGS_append += " -fPIC" EXTRA_CFLAGS_append += " ${@ bb.utils.contains('TUNE_FEATURES', 'callconvention-hard', '-mfloat-abi=hard', '', d)}" EXTRA_CFLAGS_append += " ${@ bb.utils.contains('TUNE_FEATURES', 'neon', '-mfpu=neon', '', d)}" EXTRA_CFLAGS_append += " ${@ bb.utils.contains('TUNE_FEATURES', 'armv7a', '-march=armv7-a', '', d)}" EXTRA_CFLAGS_append += " ${@ bb.utils.contains('TUNE_FEATURES', 'cortexa8', '-mtune=cortex-a8', '', d)}"
EXTRA_OECONF_append += " \
--target-os=linux --sysroot=${STAGING_DIR_TARGET} --arch=${TARGET_ARCH} --disable-mmx \
--enable-shared --disable-doc --disable-htmlpages --disable-manpages --disable-podpages \
--disable-txtpages --enable-small --disable-debug --disable-ffserver --disable-ffplay \
--extra-cflags="${EXTRA_CFLAGS}" --disable-network --disable-zlib \
--enable-fft --libdir=${base_libdir} --shlibdir=${base_libdir} \
--enable-muxer=mov --enable-muxer=mp4 --enable-encoders --enable-zlib --enable-encoder=png \
--prefix=${base_libdir} --incdir=${includedir} \ "
do_install() {
oe_runmake 'DESTDIR=${D}' install
# Info dir listing isn't interesting at this point so remove it if it exists.
if [ -e "${D}${infodir}/dir" ]; then
rm -f ${D}${infodir}/dir
fi } NORMAL
有了这个,我可以得到 ffmpeg bin。我将它推到设备上(vr360 芯片组:qcs605)。但是当我尝试调用任何 ffmpeg 命令时说
ffmpeg -ss 00:00:00 -i "input.mp4" -t 00:01:00 "out.mp4"
我收到此错误
[NULL @ 0xaf61a380] 无法为“out.mp4”out.mp4 找到合适的输出格式:参数无效
对于与视频/图像处理相关的所有 ffmpeg 操作,我遇到了同样的错误。
还有什么,我需要启用吗?
解决方案
编辑 ffmpeg_%.bbappend 文件
--启用-ffmpeg
并编辑 local.conf 文件
IMAGE_INSTALL_append += "ffmpeg ffmpeg-staticdev"
并使用 bitbake 编译整个图像。
推荐阅读
- java - 如何有效地从 String 解析为 Integer[][][]?
- google-apps-script - 将 chrome 扩展程序连接到 Google 电子表格
- image - 本地预加载的图片后面如何与 react native 中的 Image 组件一起使用
- javascript - 如何为@material-ui/core@v4.xx 安装流类型
- java - web.xml 中的错误:cvc-complex-type.2.4.a:发现以元素“context-root”开头的无效内容
- python - 时间序列数据的 Django 数据库结构?
- sql - INSERT INTO @table,其中@table 是一个变量
- amazon-web-services - 在 AWS Glue 中加入操作后删除具有相同名称的重复字段
- flutter - Firebase 不显示任何用户
- python - 我将如何将此代码编写为“try-except”块而不是多个 if 块?