本系列 以 ffmpeg4.2 源码为准,下载地址:链接:百度网盘 提取码:g3k8

本系列主要分析各种 ffmpeg 命令参数 在代码里是如何实现的。a.mp4下载链接:百度网盘,提取码:nl0s 。


命令如下:ffmpeg -ss 3 -i a.mp4 a2.mp4

-ss 3 ,seek 到输入文件的第三秒开始提取视频


命令行参数 -ss 定义如下:

ffmpeg_opt.c 3412行
{ "ss",HAS_ARG | OPT_TIME | OPT_OFFSET | OPT_INPUT | OPT_OUTPUT,{ .off = OFFSET(start_time) }, "set the start time offset", "time_off" },

从上面定义可以看出,-ss 3 会解析赋值 给 OptionsContext 的 start_time 字段。

在前面文章《FFmpeg源码分析-命令行》,分析过命令行参数的类别,主要有3类。

1,作用于 输入文件 的参数。

2,作用于 输出文件 的参数。

3,全局参数。

因为 -ss 是在 -i 前面,所以 现在的 -ss 是作用于输入文件的参数。


下面就来看看 OptionsContext 的 start_time 最后用在哪里,如下截图

在 ffmpeg_opt.c 1161行使用了 o->start_time。然后判断如果文件封装格式 AVFMT_SEEK_TO_PTS 是否置位,如果没置位 seek_timestamp 会减少 3*AV_TIME_BASE / 23 的值。

AVFMT_SEEK_TO_PTS 在源码的注释是 Seeking is based on PTS,是否基于 PTS 进行seek。

可以看到 FFmpeg 里面其实处理了非常多的兼容性问题。对不同的格式都进行了处理,自身项目如果要调 avformat_seek_file 这个函数,最好把上面的AVFMT_SEEK_TO_PTS 判断 也照抄进去项目。


由于笔者的水平有限, 加之编写的同时还要参与开发工作,文中难免会出现一些错误或者不准确的地方,恳请读者批评指正。

ffmpeg命令分析-ss相关推荐

  1. ffmpeg命令分析【详细分析合集】

    ffmpeg命令分析[内容包括]-vf/ac/b:v/r/re/segment/t/ss/output_ts_offset/vn/acc/print/yuv420p/yuv封装mp4/FFmpeg硬件 ...

  2. ffmpeg命令分析-vn

    本系列 以 ffmpeg4.2 源码为准,下载地址:链接:百度网盘 提取码:g3k8 本系列主要分析各种 ffmpeg 命令参数 在代码里是如何实现的.a.mp4下载链接:百度网盘,提取码:nl0s ...

  3. ffmpeg命令分析-re

    本系列 以 ffmpeg4.2 源码为准,下载地址:链接:百度网盘 提取码:g3k8 本系列主要分析各种 ffmpeg 命令参数 在代码里是如何实现的.a.mp4下载链接:百度网盘,提取码:nl0s ...

  4. ffmpeg命令分析-segment

    本系列 以 ffmpeg4.2 源码为准,下载地址:链接:百度网盘 提取码:g3k8 本系列主要分析各种 ffmpeg 命令参数 在代码里是如何实现的.a.mp4下载链接:百度网盘,提取码:nl0s ...

  5. ffmpeg命令分析-t

    本系列 以 ffmpeg4.2 源码为准,下载地址:链接:百度网盘 提取码:g3k8 本系列主要分析各种 ffmpeg 命令参数 在代码里是如何实现的.a.mp4下载链接:百度网盘,提取码:nl0s ...

  6. ffmpeg命令分析-ac

    本系列 以 ffmpeg4.2 源码为准,下载地址:链接:百度网盘 提取码:g3k8 本系列主要分析各种 ffmpeg 命令 在代码里是如何实现的.a.mp4下载链接:百度网盘,提取码:nl0s . ...

  7. ffmpeg命令分析-pix_fmt

    本系列 以 ffmpeg4.2 源码为准,下载地址:链接:百度网盘 提取码:g3k8 本系列主要分析各种 ffmpeg 命令参数 在代码里是如何实现的.a.mp4下载链接:百度网盘,提取码:nl0s ...

  8. ffmpeg命令分析-r

    本系列 以 ffmpeg4.2 源码为准,下载地址:链接:百度网盘 提取码:g3k8 之前的文章分析 FFMpeg 工程的 do_video_out() 函数的时候,建议不关注 delta0,delt ...

  9. ffmpeg命令分析-tee输出多路流

    本文 以 ffmpeg4.4 源码为准,a.mp4下载链接:百度网盘,提取码:nl0s . 早期 FFmpeg 在 转 码 后 输出 直播 流 时并 不支持 编码 一次 之后 同时 输出 多路 直播 ...

  10. FFMPEG命令汇总

    1.ffmpeg使用语法 命令格式:     ffmpeg -i [输入文件名] [参数选项] -f [格式] [输出文件]     ffmpeg [[options][`-i' input_file ...

最新文章

  1. 待遇46K起,这几个公众号在招人!
  2. pandas使用extract函数根据正则表达式从dataframe指定数据列的字符串中抽取出数字并生成新的数据列(extract numbers from column)
  3. python中使用zip函数基于两个列表数据list创建字典dict数据(Create a dictionary by passing the output of zip to dict)
  4. 【跃迁之路】【707天】程序员高效学习方法论探索系列(实验阶段464-2019.1.28)...
  5. TeeChart for .NET常用属性总结
  6. jbpm 和 drools_Drools和jBPM KIE A​​pps平台
  7. u-boot启动参数命令格式
  8. 员工离职时被HR回复“猝死了再说”!HR道歉:没控制好情绪
  9. Carrier Configuration in Android 6.0 文档翻译
  10. 6-1 二叉搜索树的操作集 (30 分)
  11. E: 无法打开锁文件 /var/lib/dpkg/lock-frontend - open (2: 没有那个文件或目录)
  12. VC++中视频采集系统(摄像头的制作,串口通信的应用)
  13. 鹏芯U盘(UDK2008)意外断电后修复 1
  14. 怎样在html中加入动态图片背景,怎样在网页中插入透明flash背景 添加透明flash背景方法介绍(图文)...
  15. 语音合成TTS主要模型分析
  16. eighth week(2)
  17. C/S - Exploits 学习笔记
  18. (十二)简单说一说drop、delete与truncate的区别
  19. 为火狐浏览器安装debug(小虫子)调试工具
  20. 大数据基础篇~JavaSE第一章

热门文章

  1. kali 破解无线密码
  2. 查岗神器!如何查看连接过的WiFi记录+详细信息+密码找回
  3. 如何将bmp格式图片批量转换成jpg格式的
  4. 凯利公式计算器安卓_华为MatePad Pro 5G评测:一屏双任务,打破安卓平板生态限制...
  5. ChinaITLab Linux实战工程师网校课程-8CD
  6. 以太坊开发入门,完整入门
  7. 2、杂项:Bootloader升级方式---擦、写flash在RAM中运行
  8. deepstream imagedata multistream 中文注释数据流
  9. 突破速达系列软件科目级长的限制
  10. 计算机学不学p图的,五分钟学会P图!只需要电脑自带的看图软件!无需专业的PS软件!...