我想使用ffmpeg(在其c库形式中)将视频分成更多部分,重新组合它们并对最终结果进行编码。基本的东西。但是很难找到关于此的文档或提示。我应该在哪里寻求建议?
答案 0 :(得分:6)
您可以从FFmpeg项目维护的命令行实用程序的源代码中学到很多东西。
在 ffplay.c 中, main()将向您展示如何初始化库。 stream_component_open()演示将匹配编解码器与媒体中的流进行匹配, get_video_frame()显示如何解码数据包并获取其PTS(演示时间戳)。你需要这样才能正确计算你的分裂时间。
这应该让你开始解码方面。在编码方面,请查看 ffmpeg.c 。它比ffplay更大,更复杂,但编码帧的过程几乎反映了它的解码过程,所以一旦解码工作,它应该更有意义。
答案 1 :(得分:4)
我正在寻找一个FFmpeg教程和PHP,但我发现以下是用任何语言学习它的最佳地方 我认为这本书是关于FFmpeg的唯一一本书 FFmpeg基础:使用快速音频和视频编码器进行多媒体处理
答案 2 :(得分:2)
一段时间以来,我也在寻找一个好的c / c ++ FFmpeg教程,而这个c/c++ ffmpeg-libav-tutorial绝对是我到目前为止发现的最好的教程。它说明了如何将FFmpeg用作库,并且在此之前对视频关键词(例如编码,解码,转码,混合等)给出了清晰的概述,这对不熟悉视频的人非常有帮助。
此外,此tutorial非常适合理解视频的概念,因此对于那些对视频世界不够熟悉的人,我建议从此开始,然后再继续{{ 3}}。
答案 3 :(得分:0)
https://github.com/ShootingKing-AM/ffmpeg-pseudocode-tutorial - 通过松散的伪代码对 ffmpeg-cli 的广泛工作流程理解。
对于 FFmpeg 开发者来说,最好的方法是通读 ffmpeg libav 和/或 ffmpeg-cli 的源代码。
理解ffmpeg-cli的目标是能够将FFmpeg集成到我们的项目中,而无需在后台调用ffmpeg-cli进行多媒体操作。这很重要,因为
但是,阅读 ffmpeg-cli 的源代码非常困难,因为它不是用作了解如何使用 libav 的学习材料,而是用作优化的多媒体工具。因此,我试图将其源代码整理成简单的伪代码函数,突出显示何时何地调用重要的(几乎所有)libav 的函数,以获得 ffmpeg 工作流程的整体更广阔的画面。有关如何调用 libav 函数调用的信息,可以参考 doxygen 文档和 ffmpeg-cli-source 文件。