FFmpeg av_seek_frame规律详解
| 本帖最后由 TangMonk 于 2016-7-27 10:26 编辑
1 av_seek_frame对视频进行跳转规律
1.1 flags参数
#define AVSEEK_FLAG_BACKWARD 1 ///< seek backward,若你设置seek时间为1秒,但是只有0秒和2秒上才有I帧,则时间从0秒开始。 #define AVSEEK_FLAG_BYTE 2 ///<seeking based on position in bytes #define AVSEEK_FLAG_ANY 4 ///< seek toany frame, even non-keyframes,若你设置seek时间为1秒,但是只有0秒和2秒上才有I帧,则时间从2秒开始。 #defineAVSEEK_FLAG_FRAME 8 ///< seeking based on frame number,若你设置seek时间为1秒,但是只有0秒和2秒上才有I帧,则时间从2秒开始。
1.2 seek不成功的原因
1.2.1 格式问题
[td]
1.2.2 ffmpeg版本问题
有的版本可以满足上面的格式关系
1.3 flv
对于flv格式,pkt->pos指向该packet的h264数据位置
1.4 MP4
有些mp4的片段的最后一个packet的pos为packet.pos,那么该mp4在seek的时候需要用到文件pos-50000位置的数据,不同的视频该偏移不同
1.5 av_seek_frame到40.0秒处,av_read_frame读到的第一个packet可能不是40秒处的视频packet,可能是之前的音频packet
2 遇到的问题及解决
2.1 probe size[flv @ 0x608380] Packet mismatch 0 7474
[flv @ 0x608380] Could not find codec parameters for stream 0 (Video:h264, none, 502 kb/s): unspecified size Consider increasing the value for the'analyzeduration' and 'probesize' options [flv @ 0x608380] Could not find codecparameters for stream 1 (Audio: aac, 44100 Hz, stereo, 32 kb/s): unspecifiedsample format Consider increasing the value for the 'analyzeduration' and'probesize' options
2.1.1 原因是自定义IO的probe size参数设置的过小
2.2 mp4文件执行时打印错误: [mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fff340008c0] error reading header
原因: 头的大小过小,分配大一点的头解决
2.3 mp4文件执行到avformat_open_input,报[mov,mp4,m4a,3gp,3g2,mj2@ 0x7fff340008c0] moov atom not found
别人那里没问题 原因:头太小,10M才可以,5M都不行
|
FFmpeg av_seek_frame规律详解的更多相关文章
- ffmpeg命令参数详解
ffmpeg命令参数详解 http://linux.51yip.com/search/ffmpeg ffmpeg图片加滤镜效果 参考:https://cloud.tencent.com/develop ...
- FFmpeg缩放swscale详解 <转>
利用ffmpeg进行图像数据格式的转换以及图片的缩放应用中,主要用到了swscale.h文件中的三个函数,分别是: struct SwsContext *sws_getContext(int srcW ...
- ffmpeg 详解
来源:http://blog.itpub.net/9399028/viewspace-1242300/ FFMPEG详解 认识FFMPEG FFMPEG堪称自由软件中最完备的一套多媒体支持库,它几 ...
- javaCV开发详解之技术杂烩:javaCV能帮我们做什么?能实现什么功能?ffmpeg和openCV能实现功能,javaCV如何做到更快、更简单的实现相应的功能?等等一堆实用话题
前言: 该篇文章旨在帮助刚接触javaCV的盆友系统的认识音视频.javaCV.图像处理相关的体系知识和一些实用的知识. 序: javaCV早期因为内置了openCV库,所以常用来做图像识别应用,现在 ...
- 2010_3_1最新 完整 FFMPEG 编译详解
在网上看了很多编译详解,都很零散.经过自己的编译,解决一些BUG,在此分享自己的一些经验... 话不多说了!直接上贴. 第一步:准备编译平台. 需要 一个 MinGW 和 一个 MSYS 安装包 以及 ...
- FFmpeg编解码处理2-编解码API详解
本文为作者原创,转载请注明出处:https://www.cnblogs.com/leisure_chn/p/10584925.html FFmpeg编解码处理系列笔记: [0]. FFmpeg时间戳详 ...
- FFmpeg时间戳详解
本文为作者原创,转载请注明出处:https://www.cnblogs.com/leisure_chn/p/10584910.html 1. I帧/P帧/B帧 I帧:I帧(Intra-coded pi ...
- 转:ffmpeg time_base详解
ffmpeg time_base详解 https://my.oschina.net/u/3054677/blog/866368
- FFmpeg(2)-avformat_open_input()函数详解并示例打开mp4文件
一. 解封装 pts 是显示的时间 dts是解码的时间, 这个时间是用来做同步. av_register_all(), 注册所有的格式.包括解封装格式和加封装格式. avformat_network_ ...
随机推荐
- thrift简单示例 (go语言)
这个thrift的简单示例来自于官网 (http://thrift.apache.org/tutorial/go), 因为官方提供的例子简单易懂, 所以没有必要额外考虑新的例子. 关于安装的教程, 可 ...
- Linux 里的 2>&1 究竟是什么
原文 我们在Linux下经常会碰到nohup command>/dev/null 2>&1 &这样形式的命令.首先我们把这条命令大概分解下: 首先就是一个nohup:表示当 ...
- 【linux-command】Chrome安装linux-command插件
一.linux-command是什么 550 多个 Linux 命令,内容包含 Linux 命令手册.详解.学习,值得收藏的 Linux 命令速查手册.Githb地址: https://github. ...
- C 语言快速入门,21 个小项目足矣!「不走弯路就是捷径」
C 语言作为大学理工科专业的必修,是很多同学走进编程世界的第一课.那么怎样才能更好的入门 C 语言呢? 下面整理了 21 个 C 语言练手项目,从基础语法开始,逐步深入,通过一个个练手项目,让你轻松驰 ...
- Windows下安装Scipy和Numpy失败的解决方案
使用 pip 安装 Scipy 库时,经常会遇到安装失败的问题 pip install numpy pip install scipy 后来网上搜寻了一番才得以解决.scipy 库需要依赖 numpy ...
- 数据库开发-Django ORM的一对多查询
数据库开发-Django ORM的一对多查询 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.联合主键问题 CREATE TABLE `employees` ( `emp_no` ...
- 使用批处理打包C#开发程序
最近项目接近尾声,测试比较频繁,每天需要发布多个版本 @echo off set zip=C:\Program Files\7-Zip\7z.exe set timestamp=%date:~6,4% ...
- Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Duplicate entry 'qingmu' for key 'PRIMARY'
### Error updating database. Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolatio ...
- 通过Python实现mysql查询数据库实例
#coding:utf-8 ''' Created on 2017年10月25日 @author: li.liu ''' import pymysql db=pymysql.connect('loca ...
- 分析和研究Monkey Log文件
Log 在Android中的地位非常重要,要是作为一个android程序员不能过分析log这关,算是android没有入门吧 . 下面我们就来说说如何处理log文件 . 什么时候会有Log文件的产生 ...