zoukankan      html  css  js  c++  java
  • 开源项目:FFmpeg

    ffmpeg命令行使用

    将JPG格式图片转成YUV420P格式: ffmpeg -i Z:demopic.jpg -s 720x480 Z:demopic.yuv

    解码H265成YUV420 ffmpeg -i E:videoinput.h265 -s 1920x1080 E:video1920x1080_ffmpeg.yuv

    MP4转YUV420 ffmpeg.exe -i E:video视频video_640x480_4.mp4 -r 20 -vframes 500 E:videoyuv_640x480video_640x480_4.yuv

    参考资料

    [总结]FFMPEG视音频编解码零基础学习方法   特别详细的关于FFmpeg技术总结

    雷霄骅(leixiaohua1020)的专栏  中国传媒大学雷霄骅博士CSDN主页,对视频处理技术有较深的研究,其博客也十分有参考阅读的价值

    FFmpeg的Android平台移植—编译篇

    ubuntu+ndk编译ffmpeg

    附录

    编译android系统下ffmpeg开源库脚本文件,ubuntu系统下编译!!!

    解压ffmpeg.tar.gz,将该脚本复制到configure同级路径下,然后执行该脚本。生成的动态库位于android/arm/lib路径下。

    #!/bin/bash
    NDK="/home/alchen/android-ndk-r9d"
    TARGET="android-19"
    SYSROOT="$NDK/platforms/$TARGET/arch-arm"
    TOOLCHAIN="$NDK/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64"
    
    function build_one
    {
    ./configure 
        --prefix=$PREFIX 
        --cross-prefix=$TOOLCHAIN/bin/arm-linux-androideabi- 
        --target-os=linux 
        --enable-decoder=h264 
        --enable-shared 
        --enable-version3 
        --enable-gpl 
        --enable-nonfree 
        --enable-protocol=file 
        --enable-cross-compile 
        --enable-asm 
        --enable-neon 
        --enable-armv5te 
        --disable-static 
        --disable-decoders 
        --disable-doc 
        --disable-htmlpages 
        --disable-manpages 
        --disable-podpages 
        --disable-txtpages 
        --disable-muxers 
        --disable-avdevice 
        --disable-avformat 
        --disable-avfilter 
        --disable-postproc 
        --disable-network 
        --disable-dwt 
        --disable-error-resilience 
        --disable-lsp 
        --disable-lzo 
        --disable-mdct 
        --disable-rdft 
        --disable-fft 
        --disable-faan 
        --disable-pixelutils 
        --disable-demuxers 
        --disable-bsfs 
        --disable-indevs 
        --disable-outdevs 
        --disable-filters 
        --disable-ffmpeg 
        --disable-ffplay 
        --disable-ffserver 
        --disable-debug 
        --disable-random 
        --disable-valgrind-backtrace 
        --disable-ffprobe 
        --disable-encoders 
        --disable-devices 
        --disable-protocols 
        --disable-network 
        --disable-avdevice 
        --arch=arm 
        --sysroot=$SYSROOT 
        --extra-cflags="-Os -fpic $ADDI_CFLAGS" 
        --extra-ldflags="$ADDI_LDFLAGS" 
        $ADDITIONAL_CONFIGURE_FLAG
        make clean
        make
        make install
    }
    CPU=arm
    PREFIX=$(pwd)/android/$CPU
    ADDI_CFLAGS="-marm"
    build_one

    windwos下编译ffmpeg动态库

    在windos下编译ffmpeg动态库需用使用到MinGW+Msys工具, msys安装路径为${MinGW}根目录下。在Cygwin环境下,也可以编译出ffmepg动态库,但依赖其他的cyg的库,例如cygwin.dll等,更重要的是由于平台的不兼容性,导致在cygwin下编译出来的库在VS2010的工程环境中,某些函数的调用抛出异常,导致程序中断退出。

    在MinGW环境下编译时注意检查gcc工具是否可用,如果提示找不到命令,将${MinGW}/bin路径配置到MinGW的PATH环境变量中。export PATH=$PATH:/c/MinGW/bin; 如下所示:

    image

    image

    进入ffmpeg源代码路径,执行配置脚本

    ./configure  --enable-shared 
    --disable-decoders --enable-decoder=h264 
    --disable-encoders 
    --disable-filters --enable-filter=h264 
    --disable-muxers --enable-muxer=h264 
    --disable-parsers --enable-parser=h264 
    --disable-demuxers --enable-demuxer=h264 
    --disable-protocols 
    --disable-yasm 
    --prefix=/F/libs/ffmpeg_mingw/install

    然后执行 make, make install命令进行编译安装,可能make install过程产生错误,但不影响ffmepg动态库生成。

    最后,进入源代码对应的库路径下,获取对应的动态库。

     

    3 Release模式崩溃

    Mingw编译动态库时,生成的lib文件是用Mingw下的libtool生成的,是有些问题的。在VS的Debug模式下运行是没有问题的,但Release模式下就会崩溃。原因是Release模式下,工程配置项里 linker/optimization 的 Reference选项是打开的,即选了Yes (/OPT:REF),此时由libtool生成的lib就会有问题。

    解决方法:用VS自带的lib.exe 来重新生成lib文件即可解决。
    步骤如下:
    1.  打开Visual Studio Command Prompt,然后切换到需要生成lib文件的dll的目录
    2.  执行  lib /machine:i386 /def:avcodec-54.def /out:avcodec-54.lib
    3.  用上面生成的lib文件重新编译工程即可解决问题

  • 相关阅读:
    ionic 导航
    vscode多光标编辑(MAC)
    vscode保存文件时自动删除行尾空格
    ionic-native sqlite 插件5.x版的在ionic3.x上报错 cannot read property 'split' of undefined
    MAC OSX 自带Apache 配置及使用
    ionic中ion-item下的div,span,p不渲染,应该给这些元素加上item-content属性
    开发ionic + cordova应用时遇到的坑,resources/splash.png do not meet minimum size requirements: 2732x2732
    ionic 创建指令的命名规则
    Soldier and Badges (set的检索简单运用)
    打败大魔王之最小排列数问题(全排列)
  • 原文地址:https://www.cnblogs.com/zhouLee/p/5123620.html
Copyright © 2011-2022 走看看