ffmpeg avformat_open_input返回失败的解决办法

用ffmpeg做的第一个程序,参考网上的代码,就出现了一些问题,其中avformat_open_input返回失败。

下面是我在网上收集到的失败信息的相关解决:

很多朋友在使用新版本的ffmpeg时,都遇到了avformat_open_input返回失败的问题。

在下也遇到了此问题。在stackoverflow上搜了一下,解决方法如下。

在调用avformat_open_input之前,先调用如下接口初始化一下即可。

av_register_all();

这算是新版本ffmpeg代码流程的一个变化了。

 老版本的ffmpeg,代码流程如下:

avcodec_register_all();

av_open_input_file(&pFormatCtx, "/path/to/video/file",  NULL,  0,  NULL);

 而新版本中,代码流程如下:

av_register_all();

avformat_open_input(&pFormatCtx, "/path/to/video/file", NULL, NULL);

 最后,我们要使用ffmpeg的过程中,遇到返回值失败时,可以尝试将失败原因打印出来。

方法如下:

if( err_code=avformat_open_input(&pFormatCtx, test_file, NULL, NULL) )
{
    av_strerror(err_code, buf, 1024);
    printf("Couldn't open file %s: %d(%s)", test_file, err_code, buf);
    return -1; 
}

最后再列几个变化了的接口:

老版本:

avcodec_open

avcodec_decode_video

img_convert

 

新版本:

avcodec_open2

avcodec_decode_video2

sws_scale

 

而我真正的解决方法是,打印出来的信息显示,avformat_open_input函数返回-2;然后我查看了下-2信息的错误原因是no file or directory

所以我再想,难道文件名不对?然后仔细的查看了下,不是的,但为什么按f5调试,还是会失败,后面才知道,原来是因为我需要打开的视频文件存的位置不对,test.mp4文件应该放在和.cpp一起的,而我放在了debug目录下,所以不行,打不开。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/291683.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

客户端禁用Keep-Alive, 服务端开启Keep-Alive,会怎么样?

最近部署的web程序,服务器上出现不少time_wait的tcp连接状态,占用了tcp端口,花费几天时间排查。之前我有结论:HTTP keep-alive 是在应用层对TCP连接的滑动续约复用,如果客户端、服务器稳定续约,就成了名副其…

linux网络编程之一般应用采用的协议和不同套接字的地址结构以及用户进程和内核通过哪些函数传递套接字的地址结构

1、一般应用采用的协议 2、不同套接字的地址结构 3、用户进程和内核通过哪些函数传递套接字的地址结构 从进程到内核传递套接字的地址结构函数有3个 bind、connect、sendto函数 从内核到进程传递套接字的地址结构函数有4个函数 accept、recvfrom 、getsockname 、getpeername…

四则运算2测试

这是测试程序在输入任意字符时能否正常运行 1)按程序提示正确输入 结果无错 2)当输入错误的字符,如字母等,程序出错(错误提示无限循环) 这一错误我经过长时间反正为解决,于是请教了其他同学,发现…

2020-11-04关于出现tomcat启动失败的一种原因

点击run on server后出现了如下所示: 本来是运行正常的,后来因为我将exp5里面所有的文件都复制了一遍,放到了exp5_2里面后,如下所示: 此时(复制文件夹之前)若tomcat已经启动,则不会出…

HTTP协议快速入门

一、定义 The Hypertext Transfer Protocol (HTTP) is an application protocol for distributed, collaborative, hypermedia information systems. HTTP is the foundation of data communication for the World Wide Web. Hypertext is structured text that uses logical l…

删除含有关键词的文件_AweEraser——macOS Catalina最佳的文件粉碎机

您是否正在寻找适用于macOS Catalina的好的文件粉碎机?今天macdown为大家推荐一种永久删除数据的软件——AweEraser。有时,你要销毁或擦除计算机上的所有私人文件,这意味着这些数据必须受到保护,免受他人的侵害。本地硬盘或外部硬…

Cocos2d-JS v3.0 alpha

Cocos2d-JS是整合了Cocos2d-html5 v3.0 alpha和Cocos2d-x JSBinding的新JS引擎仓库。整合之后的核心优势在于Html5和JSB的开发流程及API现在变得高度统一,在使用同一套JS游戏代码的基础上,我们的工具也极大的简化了对于不同目标平台的编译发布流程 核心特…

linux网络编程之用一张图片说明函数inet_ntop、inet_pton、inet_addr、inet_ntoa 、inet_aton函数之间的关系

1、inet_ntop、inet_pton、inet_addr、inet_ntoa 、inet_aton函数之间的关系 2、inet_ntop、inet_pton函数的源代码 1、inet_pton函数源码 int inet_pton(int family, const char *strptr, void *addrptr) {if (family == AF_INET) {struct in_addr in_val;if (inet_aton(s…

聊一聊如何用C#轻松完成一个TCC分布式事务

背景 银行跨行转账业务是一个典型分布式事务场景,假设 A 需要跨行转账给 B,那么就涉及两个银行的数据,无法通过一个数据库的本地事务保证转账的 ACID ,只能够通过分布式事务来解决。在 聊一聊如何用C#轻松完成一个SAGA分布式事务…

Xcode6.1 模拟器路径

Xcode 5的iOS模拟器的应用的目录是在~/Library/Application Support/iPhone Simulator/<iOS_Version>/Applications/{Application_ID} Xcode 6的目录改为~/Library/Developer/CoreSimulator/Devices/{Device_ID}/data/Containers/Bundle/Application/{Application_ID}/这…

安卓效率微商_微商人脉通app下载-微商人脉通 安卓版v2.5.5-PC6安卓网

微商人脉通app是一款很好用的微商营销软件&#xff0c;微商人脉通app可以帮你高效获取客源&#xff0c;微商人脉通app还具有丰富微商各类工具&#xff0c;微商人脉通app是做微商生意第一选择的工具&#xff01;软件介绍微商人脉通app致力于打造微商营销推广行业优秀产品&#x…

linux之如何快速查看文件的大小

1、linux之如何快速查看文件的大小 命令如下&#xff0c;每次都容易忘记&#xff0c;希望下次记住 du -h

新年伊始 .Net7 preview1 发布!

虎年伊始&#xff0c;.NET 7.0就要来了&#xff0c;还学的动吗&#xff1f;从github能看到&#xff0c;截止到2月8号&#xff0c;.NET 7.0 Preview1已经全部开发完成&#xff0c;连Preview2也完成了85%&#xff0c;这进度杠杠的&#xff01;微软这几年大力推进.NET稳定更新&…

DDD:如何更好的使用值对象

背景 大师们让我们多使用“值语义”的对象&#xff08;并非一定是是值对象&#xff09;&#xff0c;我们工作中也没有少使用&#xff08;int、bool、date等等&#xff09;&#xff0c;只是大多数人都没有多的自定义“值语义”的类型&#xff08;我也其中之一&#xff09;&#…

数据挖掘课程实验(8个实验报告)

是从实验一到实验八的 链接&#xff1a;https://download.csdn.net/download/qq_44872173/15558967

hutol json null值没了_JSON数据处理框架Jackson精解第一篇-序列化与反序列化核心用法...

Jackson是Spring Boot默认的JSON数据处理框架&#xff0c;但是其并不依赖于任何的Spring 库。有的小伙伴以为Jackson只能在Spring框架内使用&#xff0c;其实不是的&#xff0c;没有这种限制。它提供了很多的JSON数据处理方法、注解&#xff0c;也包括流式API、树模型、数据绑定…

linux之解决在ubuntu上面打开window文件乱码问题总结

1、问题&#xff1a;比如我们在linux系统里面&#xff0c;通过远程桌面打开Windows的txt文件会出现乱码 2、原因&#xff1a; Linux显示在Windows编辑过的中文就会显示乱码是由于两个操作系统使用的编码不同所致。Linux下使用的编码是utf8&#xff0c;而Windows使用的是gb1803…

什么是异构数据库

异构数据库&#xff08;HDB Heterogeneous DataBase&#xff09;是多个数据库系统的集合&#xff0c;可以实现不同数据库之间数据的共享和透明访问。异构数据库中的每个数据库都拥有自己的DMBS&#xff0c;在实现数据共享的同时&#xff0c;仍保有自己的应用特性、完整性控制和…

枚举法的简单应用

箱子里有红&#xff0c;黄&#xff0c;蓝&#xff0c;白&#xff0c;黑五种颜色玻璃球若干&#xff0c;每次任意拿出三个球&#xff0c;问拿出三种不同颜色玻璃球的可能取法&#xff0c;请输出每种排列的情况。 注解&#xff1a;利用枚举法定义五种情况&#xff0c;“enum colo…