如何在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','armv7a','-march=armv7-a','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文件

-enable-ffmpeg

并使用

编辑local.conf文件

IMAGE_INSTALL_append + =“ ffmpeg ffmpeg-staticdev”

并使用bitbake编译整个图像。