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

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


命令如下:ffmpeg -i a.mp4 -c copy -f segment test_output-%d.mp4

-f segment ,ffmpeg 切分视频文件,前面加 -c copy 是为了避免重新编解码,加快切分速度。


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

ffmpeg_opt.c 3371行
{"f", HAS_ARG | OPT_STRING | OPT_OFFSET | OPT_INPUT | OPT_OUTPUT, { .off = OFFSET(format) }, "force format", "fmt" },

命令行参数 -f segment 会赋值给 OptionsContext 的 format,想知道怎么解析然后赋值的,请看《FFmpeg 源码解析-命令行》的文章。

OptionsContext 的 format 最后用在哪里,请看下面代码:

ffmpeg_opt.c 2151行
err = avformat_alloc_output_context2(&oc, NULL, o->format, filename); // 注意 o->foramt

如上图,在申请 ouput_context (输出上下文)的时候,传递了 o->format 进去。

不得不说,ffmpeg 封装得真好,真智能,直接定义一个 segment 的 AVFormatContext,把分片逻辑都封装在 format 里面。API 调用层完全不用管,调 api函数 av_write_frame() 往 segment 的 AVFormatContext 写数据就能自动分片好了。


ffmpeg -i a.mp4 a.m3u8 这条命令 hls m3u8 的分片也是用 AVFormatContext 的方式来实现的,是 HLSContext。


由于笔者的水平有限, 加之编写的同时还要参与开发工作,文中难免会出现一些错误或者不准确的地方,恳请读者批评指正。如果读者有任何宝贵意见,可以加我微信 Loken1。


推荐一个零声学院免费公开课程,个人觉得老师讲得不错,分享给大家:

Linux,Nginx,ZeroMQ,MySQL,Redis,fastdfs,MongoDB,ZK,流媒体,CDN,P2P,K8S,Docker,TCP/IP,协程,DPDK等技术内容,立即学习

ffmpeg命令分析-segment相关推荐

  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命令分析-t

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

  5. ffmpeg命令分析-ac

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

  6. ffmpeg命令分析-pix_fmt

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

  7. ffmpeg命令分析-r

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

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

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

  9. FFMPEG命令汇总

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

最新文章

  1. 相机模拟激光雷达 建图
  2. 竞赛报名 | AI时代数据库交互怎么玩?首届中文NL2SQL挑战赛开战
  3. Mysql的性能优化
  4. 解读 C# 中的正则表达式
  5. 不同浏览器前端调试查看返回页面的json数据
  6. ML重要概念:梯度(Gradient)与梯度下降法(Gradient Descent)
  7. 关于Android的HAL的一些理解
  8. 4.3英寸屏双核 LG Prada K2通过FCC认证
  9. 纯惯导卡尔曼滤波器代码实例解读01
  10. Arturia V Collection 8 for mac - Arturia系列合成器插件大合集
  11. php date 函数用法,PHP日期时间函数date()使用方法
  12. 视音频处理大神-雷霄骅
  13. 数字转为大写金额(C#)
  14. FC协议监控卡(FC协议分析仪),FC Monitor
  15. CamScanner扫描全能王视频教程-Array老师-专题视频课程
  16. 提取智慧树试卷_智慧树-中国传统文化试题及答案
  17. KB、MB、GB等和KiB、MiB、GiB等的区别
  18. 【Excel】数据透视表—数据透视表布局(显示)
  19. 利用GPS定位[android]
  20. Security Best Practices+Klocwork

热门文章

  1. 新春特辑 | 数字经济专题合辑 报告下载
  2. 百度无人驾驶课程——Apollo定位-笔记
  3. 什么是分布式和集群?
  4. 【环境配置】Ubuntu20.04安装ffmpeg
  5. 无人机飞控平台ArduPilot源码入门教程 - 首页
  6. 收银软件哪家强?2023年收银软件排行榜新鲜出炉!
  7. 计科专业c语言重修,计算中心
  8. 怎么修改照片dpi值?怎么提高照片分辨率dpi?
  9. 给axios的请求拦截器中配置token
  10. 谷歌力挺网易自动化 UI 测试解决方案 Airtest Project[看上去比较靠谱,但没有尝试的]