• ffmepg在CentOS编译和调试(DEBUG)技巧


    1.官网下载最新的ffmpeg源码
    git clone git://source.ffmpeg.org/ffmpeg.git ffmpeg

    2.官网下载x264,并编译x264

    cd ffmpeg
    git clone git://git.videolan.org/x264
    cd x264
    ./configure --enable-static

    如果是32位的系统,需要增加参数”-march=i686″,否则LD过程可能报错:

    CFLAGS="-march=i686" ./configure --enable-static
     --disable-opencl
     --disable-avs
     --disable-cli
     --disable-ffms
     --disable-gpac
     --disable-lavf
     --disable-swscale
     --disable-asm


    make
    make install

    如果要增加其他新的库,比方说mp3,amr等等,可以我前面推荐的官方编译文档

    3.配置ffmpeg,并支持DEBUG

    ./configure --enable-debug=1 --disable-yasm  --disable-static --enable-shared
    --enable-gpl --enable-version3 --disable-w32threads  --enable-bzlib
    --enable-libfreetype   --enable-libx264 --enable-zlib

    然后修改config.mak 文件:
    vi config.mak
    a. 修改CFLAGS= ….这一行,把其中的-g1参数替换为-g, 该行的-O3参数替换为-O
    b. STRIP=strip这一行替换为STRIP=echo
    c. 替换其他行的-O3选项为-g

    make
    make install

    4.执行ffmepg时,会遇到报错,修改以下系统配置
    vi /etc/ld.so.conf
    文件尾部加入新的一行:
    /usr/local/lib
    保存后,执行命令:
    ldconfig

    5.可以用gdb开始调试
    gdb ffmpeg
    设置一下av_read_frame, av_write_frame, avcodec_open2等关键函数的断点
    >>break utils.c:1486
    >>break mux.c:732
    >>break h264_mp4toannexb_bsf.c:73
    >>break utils.c:788
    开始正式执行命令,带上命令参数
    >>run -i test.mp4 -vbsf h264_mp4toannexb -an test.h264-i test.mp4 -vbsf h264_mp4toannexb -an test.h264

    我的这条ffmpeg命令是把一个mp4文件中的h264视频提取保存为h264 ES流文件。

  • 相关阅读:
    架构设计:系统存储(1)——块存储方案(1)
    《Linux设备节点创建》用户空间ueventd创建设备节点规则
    架构设计:系统间通信(45)——阶段性问题记录
    队列
    链栈
    顺序栈
    入栈问题
    队列
    数学表达式配对栈
    链表设置
  • 原文地址:https://www.cnblogs.com/lykbk/p/sdsds343434343.html
Copyright © 2020-2023  润新知