本帖最后由 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]  

   
格式

   
AVSEEK_FLAG_BYTE

   
AVSEEK_FLAG_ANY

  
mp4

  
不可以

  
可以

  
flv

  
可以

  
不可以

  
avi

  
可以,但是显示下一个pos

  
可以

  
ogv

  
可以

  
可以

  
webm

  
可以

  
可以

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规律详解的更多相关文章

  1. ffmpeg命令参数详解

    ffmpeg命令参数详解 http://linux.51yip.com/search/ffmpeg ffmpeg图片加滤镜效果 参考:https://cloud.tencent.com/develop ...

  2. FFmpeg缩放swscale详解 <转>

    利用ffmpeg进行图像数据格式的转换以及图片的缩放应用中,主要用到了swscale.h文件中的三个函数,分别是: struct SwsContext *sws_getContext(int srcW ...

  3. ffmpeg 详解

    来源:http://blog.itpub.net/9399028/viewspace-1242300/ FFMPEG详解   认识FFMPEG FFMPEG堪称自由软件中最完备的一套多媒体支持库,它几 ...

  4. javaCV开发详解之技术杂烩:javaCV能帮我们做什么?能实现什么功能?ffmpeg和openCV能实现功能,javaCV如何做到更快、更简单的实现相应的功能?等等一堆实用话题

    前言: 该篇文章旨在帮助刚接触javaCV的盆友系统的认识音视频.javaCV.图像处理相关的体系知识和一些实用的知识. 序: javaCV早期因为内置了openCV库,所以常用来做图像识别应用,现在 ...

  5. 2010_3_1最新 完整 FFMPEG 编译详解

    在网上看了很多编译详解,都很零散.经过自己的编译,解决一些BUG,在此分享自己的一些经验... 话不多说了!直接上贴. 第一步:准备编译平台. 需要 一个 MinGW 和 一个 MSYS 安装包 以及 ...

  6. FFmpeg编解码处理2-编解码API详解

    本文为作者原创,转载请注明出处:https://www.cnblogs.com/leisure_chn/p/10584925.html FFmpeg编解码处理系列笔记: [0]. FFmpeg时间戳详 ...

  7. FFmpeg时间戳详解

    本文为作者原创,转载请注明出处:https://www.cnblogs.com/leisure_chn/p/10584910.html 1. I帧/P帧/B帧 I帧:I帧(Intra-coded pi ...

  8. 转:ffmpeg time_base详解

    ffmpeg time_base详解 https://my.oschina.net/u/3054677/blog/866368

  9. FFmpeg(2)-avformat_open_input()函数详解并示例打开mp4文件

    一. 解封装 pts 是显示的时间 dts是解码的时间, 这个时间是用来做同步. av_register_all(), 注册所有的格式.包括解封装格式和加封装格式. avformat_network_ ...

随机推荐

  1. 利用Git钩子实现代码发布

    目录 1.什么是git钩子 2.安装一个钩子 3.常用的钩子脚本类型 3.1 客户端钩子 3.1.1 pre-commit 3.1.2 prepare-commit-msg 3.1.3 commit- ...

  2. 构建之法——beta版本

    一.开头☀️ 这个作业属于哪个课程 课程链接 这个作业要求在哪里 要求链接 团队名称 Running Man 这个作业的目标 完成团队的Beta版本项目 二.时间任务安排☀️ 时间安排: 冲刺总时间为 ...

  3. CentOS7卸载 OpenJDK 安装Sun的JDK8

    Linux上一般会安装Open JDK,关于OpenJDK和JDK的区别:http://www.cnblogs.com/sxdcgaq8080/p/7487369.html 下面开始安装步骤: --- ...

  4. C# 验证控件组

    C# 验证控件允许使用ValidationGroup给验证控件分组,分组后的两组验证控件可以独立使用,互不相干.比如一个页面有登录和注册两个部分,假如使用验证控件组,提交的时候会对所有的验证控件进行验 ...

  5. DT6.0关于SQL注入漏洞修复问题

    阿里云安全平台提示:Destoon SQL注入,关于: Destoon的/mobile/guestbook.php中$do->add($post);这行代码对参数$post未进行正确转义,导致黑 ...

  6. destoon下动态链接301到伪静态(ngnix)

    分享一个destoon6.0/7.0下动态链接301到伪静态上面,实现权重提升. if ($request_uri ~* "^/index.php\?itemid=(\d+)&mod ...

  7. for循环计算

    计算0-100之间所有偶数的和: var a = 0 ; //声明一个变量 for (var i = 0; i<100 ; i++){ //起始条件 判断条件 结束条件 if (i%2===0) ...

  8. velero 备份、迁移 kubernetes 应用以及持久化数据卷

    velero 是heptio 团队开源的kubernetes 应用以及持久化数据卷备份以及迁移的解决方案,以前的名字为ark 包含以下特性: 备份集群以及恢复 copy 当前集群的资源到其他集群 复制 ...

  9. 嘉立创制作PCB流程

    现在做板子基本上是选择嘉立创和捷配,今天看一下嘉立创如何下PCB和STM贴片单,改天再写一下捷配的下单 我喜欢用下单助手,比较方便 注意需要把自己的板子的PCB文件用压缩软件生成压缩包文件,名字自己取 ...

  10. Generating a Random Sample from discrete probability distribution

    If is a discrete random variable taking on values , then we can write . Implementation of this formu ...