13 | FFmpeg 有哪些常见的应用场景?
刘歧
你好,我是刘歧。
FFmpeg API 应用部分的前两节课,我们了解了 AVFormat、AVCodec 以及常用的操作接口,但是现在这些知识还是“各忙各的”的状态,好像没有真正地把图像与封装格式、传输协议给串起来,形成一个完整的音视频图形图像处理的链条,可能你都没空看 FFmpeg 源代码目录里面提供的例子。
别急,这节课我们就一起来看一看 FFmpeg 源代码里面的例子,主要是不转码只转封装、转码转封装和直播推流三个场景,通过分析这三个场景案例,加深一下你对 API 使用的理解。
Remuxing
在使用 FFmpeg 的 API 做开发之前,我们先来梳理一下想要做 Remuxing 的话都需要用到哪些结构体与模块,看一下基本的流程。
打开输入文件和打开输出文件,我们可以理解为初始化操作。
从输入文件中读取音视频数据包,将音视频数据包写入输出文件,我们可以把它理解为一个循环操作,直到遇到结束相关的操作信息才停止。
关闭输出文件和输入文件,我们可以理解为收尾操作。
下面,我们逐步剖析一下。
初始化操作部分的代码大概会使用这些函数。
使用 avformat_open_input、avformat_find_stream_info 来打开输入文件,并根据输入文件中的音视频流信息建立音视频流,也就是 AVStreams。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
FFmpeg多媒体处理技术应用场景总结 本文深入介绍了FFmpeg在多媒体处理中的常见应用场景,包括Remuxing和Transcoding。在Remuxing中,详细解释了使用FFmpeg API进行开发时所需的结构体、模块以及相应的代码示例。而在Transcoding中,介绍了打开输入文件、打开输出文件、编解码等操作的流程,并给出了相应的代码示例。通过分析FFmpeg源代码中的例子,读者能够快速了解FFmpeg的常见应用场景,加深对API使用的理解。文章内容丰富,对于想要深入了解FFmpeg的读者来说,是一份非常有价值的技术资料。 在推流方面,可以选择Remuxing或Transcoding中的任何一个例子。设置输出文件时,需要注意将输出格式设置为FLV,以适配RTMP的直播流。控制节奏时,可以在循环av_read_frame操作的下一句加上usleep(40000)来实现。最后,读者还可以思考如何通过Remuxing将一个视频编码是H.264,音频编码是AAC编码的直播流,收录为MP4文件,并且MP4文件是moov在mdat的前面的情景。 通过本文的学习,读者可以掌握FFmpeg中API的使用方法,实现音视频内容的收录和转码。灵活运用所学内容,基本可以满足大部分的场景需求。然而,仍需从FFmpeg源代码的doc/examples目录下提供的例子入手,多改、多看、多学习,以加深对FFmpeg的API的理解。
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《快手 · 音视频技术入门课》,新⼈⾸单¥59
《快手 · 音视频技术入门课》,新⼈⾸单¥59
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(3)
- 最新
- 精选
- peter请教老师两个问题: Q1:双声道合并单声道,还能听到两个声道,有什么意义? 用这个命令:ffmpeg -i input.aac -ac 1 output.aac,可以把双声道合并为单声道,但是,合并后的文件,还是能听到两个声道的声音,怎么能算是“单声道”呢? 用命令“ffmpeg -i jixiaolan_aac.aac -map_channel 0.0.0 left.aac -map_channel 0.0.1 right.aac”生成的两个文件,无论是left.aac还是right.aac ,两个耳机都能听到,为什么? 这个问题是看书《FFmpeg从入门到精通》遇到的。 Q2:文中的代码,应该是C代码。这些代码可以下载并执行吗? (比如:从github上下载,然后编译、执行,能看到结果)。如果有一个完整的步骤,能操作成功并看到结果就更好了。
作者回复: 1. 和声道布局有关系,ffmpeg -layouts 2. 下载ffmpeg源代码后可以先编译ffmpeg,./configure ;make然后make examples可以编译examples代码
2022-08-23归属地:北京1 - Amos请教老师个问题:如果将视频文件的码率下降一半,其他编码参数不变,视频文件的大小也应该下降一半吧?
作者回复: 有可能,取决于最终的算法
2023-09-21归属地:北京 - ifelse学习打卡2023-12-31归属地:浙江
收起评论