FFmpeg调用avformat_open_input时返回错误 -22(Invalid argument)

2023-10-28

一 FFmpeg报错误 -22(Invalid argument)

这个错误确实浪费了我一晚上,为啥呢,因为我打开rtsp的地址是能播放的,但是换成http://xxx/HD.live.mp4?auth_key=xxx这种带鉴权的地址后,就报非法参数了。
长话短说,出现这个错误的原因可能是:

  • 1)err = avformat_open_input(&ic, is->_filename.c_str(), is->_iformat, &is->_format_opts);的_filename文件名不对。
  • 2)没调用av_register_all()。
  • 3)ffmpeg版本不对。

第1个比较常见,但是我想说的是我这次不是这点导致的,而是ffmpeg版本不对,因为我尝试调用了av_register_all(),但是还是不行,而且我确认过这个流地址在vlc以及我自己其它的播放demo都是没问题的。
那么我是怎么猜到可能是ffmpeg版本库的问题呢,

  • 1)因为我自己能播放的demo和报错的这份代码是一样的,不一样的只有ffmpeg版本库,所以我尝试把库换掉,结果就好了。
  • 2)而且报错的ffmpeg版本是能打开rtsp的地址并播放的,但是换成http://xxx/HD.live.mp4?auth_key=xxx这种带鉴权的地址后,就报非法参数了。估计是这个版本对一些字符解析的不太准确,例如带问号、等号等等,具体的可以自行看源码。

报错版本:ffmpeg-4.3.1,64位(这个是我从官网下载的)。 换成ffmpeg-4.2.1,64位就没问题了(这份是我自己源码编译的)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

FFmpeg调用avformat_open_input时返回错误 -22(Invalid argument) 的相关文章

随机推荐

  • Ubuntu14.04 更换内核重启出现:Missing Modules

    1 前言 最近由于实验的需要 需要更换Linux系统的内核 我的系统是Ubuntu14 04 内核版本时3 19 由于实验的平台需要内核版本3 14 0 只好将Ubuntu14 04的内核从3 19降级到3 14 0 在编译安装之后 运行命
  • Vue中数组赋值问题

    出现的问题 昨天工作内遇到的问题 用输入arrList渲染了一个表格 修改了arrList 然而列表没有改变 Vue 不是双向绑定吗 怎么回事 what s fuck 值变了 列表没有变 测试代码 Vue中列表渲染的数据是这样的 单价和数量
  • 详解 Windows 10 安装 CUDA 和 CUDNN

    目录 查看本机 Window 10 系统已经安装 NIVIDIA 的驱动版本 说在前面 查看驱动版本 CUDA 下载 直接下载最新的 CUDA 下载历史版本的 CUDA 安装 测试 CUDNN 下载 下载最新版本的 cuDNN 下载历史版本
  • linux 多线程 pthread_cond_wait(&cond,&mutex)理解

    pthread cond wait 用于阻塞一个线程 知道有信号唤醒它 下面是一个简单的例子 我们可以从程序的运行来了解条件变量的作用 pthread cond wait c include
  • js逆向之有道词js加密解析

    js逆向之有道词js加密解析 文章目录 js逆向之有道词js加密解析 需要用到的工具 下面就介绍一下3种看js加密的代码方法 第一种方法 第二种 第三种 下面我们来了解我们要用什么解密md5 下面做一个js加密解析十分适合上手的 有道词典的
  • Unity 抠图 shader

    Created by Oliver Davies Enjoy oliver psyfer io Shader Unlit ChromaKey Properties MainTex Texture 2D white KeyColor KeyC
  • 基于阿里云ECS服务器搭建k8s集群

    此处仅有两台服务器 一台master节点 一台node节点 后期可按照步骤继续增加node节点 1 搭建环境 Master节点 CPU 2核 内存 2GiB 操作系统 Centos7 6 64位 带宽 1Mbps 服务器公网IP 私有IP
  • JDBC在IDEA中配置mysql过程及编程详解

    目录 jdbc编程简介 1 导入jar包 2 建立数据库连接 2 1 创建数据源 描述数据库服务器在哪 2 2 实现一个mysql客户端 通过网络和服务器进行通信 3 使用代码操作数据库 3 1 增删改操作 增加操作 更新操作 删除操作 3
  • 【论文阅读】Contiual learning with hypernetwork

    文章目录 论文阅读 2019 Contiual learning with hypernetwork 1 超网络简介 2 论文的总体介绍 3 相关的介绍 3 1 一些数学符号 3 2 继续学习从模型角度的理解 4 论文将超网络继续学习模型分
  • 0-1背包问题--动态规划解法

    问题描述 给定n种物品和一背包 物品i的重量是wi 其价值为vi 背包的容量为C 问应如何选择装入背包的物品 物品不能分割 使得装入背包中物品的总价值最大 抽象描述如下 x n 表示物品的选择 x i 1表示选择放进物品i到背包中 问题分析
  • CSS学习--css的由来(1)

    一 什么是css 1 css Cascading Style Sheets 层叠样式表 级联样式表 2 css 是控制HTML文档内容的排版 二 css解决了什么问题 以前网页的元素的样式 全部是依靠标签属性来控制 比如 h1 align
  • 基于C++与CUDA的N卡GPU并行程序——OpenGL图形互操作性

    图形互操作性的极简框架示例 GPU的成功要归功于它能实时计算复杂的渲染任务 同时系统的其他部分还可以执行其他的任务 这就带来了一个显而易见的问题 能否在同一个应用程序中GPU既执行渲染计算 又执行通用计算 如果要渲染的图像依赖通用计算的结果
  • KVM重定向PCI

    应用场景 将服务器上的USB控制器 重定向到KVM中 一 修改KVM的配置文件 1 查看KVM的xml配置文件 KVM的配置文件存放在 etc libvirt qemu目录下 使用vi进行编辑 下面的这个KVM是重定向了一个PIC控制器 添
  • Windows平台Java开发环境的搭建

    下载安装JDK 首先到oracle的jdk下载页面 下载jdk jdk建议使用最新的jdk8 根据系统版本选择32位或者64位的 下载完成之后点击安装 安装位置随意 但是必须记住 一会配置环境变量的时候会用到 配置环境变量 安装完成之后就可
  • ubuntu 16.04 安装ssh失败,原因竟然是自带的openssh-client版本造成的

    ubuntu 16 04默认安装上了最新的openssh client 可以连接其他计算机上的ssh服务 而没有安装openssh server服务端 允许其他计算机通过ssh访问和操作计算机 如 xshell等工具 openssh ser
  • 题海战 C++ STL set应用

    目录 题目描述 思路分析 代码 题目描述 某信息学奥赛教练经验丰富 他的内部题库有 m 道题 他有 n 个学生 第 i 个学生已经做过p i 道题 由于马上要进行noip考试 该教练准备举行 k 场比赛和训练 每场比赛或训练都会有一些他的学
  • STM32堆和栈及变量的存储理解

    STM32堆和栈及变量的存储理解 转至 https blog csdn net shaynerain article details 71952754 关于堆和栈已经是程序员的一个月经话题 大部分有是基于os层来聊的 那么 在赤裸裸的单片机
  • 学习太极创客 — MQTT 第二章(九)本章测试

    程序代码如下 项目名称 Project 零基础入门学用物联网 程序名称 Program name complete connect 团队 Team 太极创客团队 Taichi Maker www taichi maker com 作者 Au
  • 硬件比软件难,那为什么硬件工程师待遇还不如软件?

    大家好 我是张巧龙 今天看知乎 有一个很有意思的问题 硬件明明比软件更难 国内的硬件技术也不如软件 为什么硬件工程师待遇还不如软件 在这里分享几个回答 有一定的参考价值 欢迎留言讨论 01 回答1 作者 Tinker 链接 https ww
  • FFmpeg调用avformat_open_input时返回错误 -22(Invalid argument)

    一 FFmpeg报错误 22 Invalid argument 这个错误确实浪费了我一晚上 为啥呢 因为我打开rtsp的地址是能播放的 但是换成http xxx HD live mp4 auth key xxx这种带鉴权的地址后 就报非法参