ffmpeg使用改进

在编译支持ffmpeg命令行的静态库时遇到了很多坑,总结修改如下:

      1.  修改ffmpeg.c的main函数,因为一个程序不能有俩个main函数,我们可以改成ffmpeg_main,

 

      2.cmdutils.c文件修改exit_program(int)函数,这个函数是清理资源用的,但是在里面调用了退出进程的函数exit,导致每次执行ffmpeg命令程序都会闪退。

将exit函数注释掉。

void exit_program(int ret)
{
    if (program_exit)
        program_exit(ret);
    
    //标记为转换完成
    stopRuning();
//这个是结束进程的方法,让ffmpeg进行完转码以后不至于退出程序
//    exit(ret);
//    所以将退出进程的方法改造为退出线程
    pthread_exit(NULL);
}

 

    3. 将ffmpeg_main中的exit_program改为退出线程函数,return  exit_program(1);改完以后会发现并没有退出线程,所以还需要将exit_program(int ret)

av_noreturn中的av_noreturn去掉,这个是给编译器的注解。

 

    4.在ffmpeg_clean函数中会爆野指针错误,我们需要把指针计数器清零。(ffmpeg_main第二次执行闪退崩溃野指针)

 

    5.和成视频的同名错误,即在执行完assert_file_overwrite函数之后会卡住报错already exist,所以我们要在

函数开始时先将以前的删除。

demo地址:https://github.com/zhouxiangyu666666/ZXYFFmpeg/tree/master

 


--------------------- 
作者:伴得白马啸西风 
来源:CSDN 
原文:https://blog.csdn.net/zhouxiangyu666666/article/details/78866245 
版权声明:本文为博主原创文章,转载请附上博文链接!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值