avformat_open_input 打开文件失败处理

前言

ffmpeg 中 avformat_open_input 为打开文件.在很多情况我们都有可能遇到打开文件失败.如 封装MP4有可能失败. 打开h.264 or h.265 的裸码流文件有可能失败.还有打开MP4文件时.

得知 avformat_open_input return : 0 为打开成功的.那失败了呢?

我们直接用av_err2str 来查看错误原因

//[2]打开文件 avformat_open_input()
    int result = avformat_open_input(&pFormatCtx, [filePath UTF8String], NULL, NULL);
    if (result != 0) {
        NSLog(@"无法打开文件:%d  %s",result,av_err2str(result));
        ifree = YES;
        goto end;
    }
无法打开文件:-1028739847   Invalida data found when processing input

这样子情况似乎有很多种...
最后为了解决无法打开文件的问题直接草草的用了以下代码

AVInputFormat* iformat=av_find_input_format("h264");
    
    //[2]打开文件 avformat_open_input()
    int result = avformat_open_input(&pFormatCtx, [filePath UTF8String], iformat, NULL);
    if (result != 0) {
        NSLog(@"无法打开文件:%d  %s",result,av_err2str(result));
        ifree = YES;
        goto end;
    }

前提是你得知道你的问题编码类型为h.264 而不是h.265

关于这个提示 Invalida data found when processing input 大神看见了希望能解答一下哈谢谢啦

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 版本记录 前言 FFMPEG是一个多媒体转码、音视频流化传输的一个第三方开源框架,并且这个第三方库是基于C语言的。...
    刀客传奇阅读 9,853评论 3 54
  • ### YUV颜色空间 视频是由一帧一帧的数据连接而成,而一帧视频数据其实就是一张图片。 yuv是一种图片储存格式...
    天使君阅读 3,499评论 0 4
  • //音频编码 JNIEXPORT void JNICALL Java_com_tz_dream_ffmpeg_an...
    Jackey_song阅读 1,604评论 0 1
  • 现状:现在视频直播非常的火,所以在视频直播开发中,使用的对视频进行遍解码的框架显得尤为重要了,其实,这种框架蛮多的...
    ZHANG_GO阅读 3,227评论 0 2
  • ffmpeg是一个非常有用的命令行程序,它可以用来转码媒体文件。它是领先的多媒体框架FFmpeg的一部分,其有很多...
    城市之光阅读 6,948评论 3 6