前言
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 大神看見了希望能解答一下哈謝謝啦