11

我想使用 ffmpeg(以其 c 库形式)将视频分割成更多部分,重新​​组合它们并对最终结果进行编码。一些基本的东西。但是很难找到有关此的文档或提示。我应该在哪里寻找/寻求建议?

4

4 回答 4

7

您可以从 FFmpeg 项目维护的命令行实用程序的源代码中学到很多东西。

ffplay.c中,main()将向您展示如何初始化库。 stream_component_open()演示了将编解码器与媒体中的流匹配,get_video_frame()演示了如何解码数据包并获取其 PTS(呈现时间戳)。你需要它来正确地安排你的分裂时间。

这应该让您开始解码方面的工作。在编码方面,请查看ffmpeg.c。它比 ffplay 更大更复杂,但编码帧的过程几乎反映了解码它的过程,所以一旦你有解码工作,它应该更有意义。

于 2012-09-26T17:27:38.087 回答
4

我一直在寻找 FFmpeg 教程和 php,但我发现以下是用任何语言学习它的最佳地点 一本书我认为这是唯一一本关于 FFmpeg FFmpeg 基础知识的书:使用快速音频和视频编码器进行多媒体处理

http://www.amazon.com/FFmpeg-Basics-Multimedia-handling-encoder/dp/1479327832/ref=sr_1_12?ie=UTF8&qid=1357356672&sr=8-12&keywords=ffmpeg

在此处输入图像描述

第二个地方是 http://ffmpeg.org/documentation.html

于 2013-01-05T03:36:03.223 回答
2

我也一直在寻找一个好的 c/c++ FFmpeg 教程,而这个c/c++ ffmpeg-libav-tutorial绝对是我迄今为止找到的最好的。它解释了如何将 FFmpeg 用作库,并在此之前对视频关键字(如编码、解码、转译、复用 exc.)进行了清晰的概述,这对不熟悉视频的人非常有帮助。

另外,这个教程对于理解视频的概念很有帮助,所以对于视频世界还不够熟悉的朋友,我建议先从这个开始,然后再继续学习c/c++ ffmpeg-libav-tutorial

于 2020-04-30T20:28:17.643 回答
0

TLDR;

https://github.com/ShootingKing-AM/ffmpeg-pseudocode-tutorial - 通过松散的伪代码对 ffmpeg-cli 的广泛工作流程理解。


根据 FFmpeg 开发人员,最好的方法是阅读 ffmpeg libav 和/或 ffmpeg-cli 的源代码。

了解ffmpeg-cli的目的是为了能够将FFmpeg集成到我们的项目中,而无需在后台调用ffmpeg-cli进行多媒体操作。这很重要,因为,

  • 启动外部可执行文件往往会被防病毒软件阻止,并可能导致用户出现问题。
  • 优化项目特定的 libav 使用并从 ffmpeg-cli 中跳过不必要的代码此外,ffmpeg 官方文档充其量是模糊的,对于希望在其代码中实现 ffmpeg 库 (libav) 功能的开发人员来说,唯一的选择是阅读命令行界面的源代码.

但是,阅读ffmpeg-cli的源代码是非常困难的,因为它不是用来作为理解如何使用libav的学习材料,而是作为一个优化的多媒体工具。因此,我尝试将其源代码整理为简单的伪代码函数,突出显示何时何地调用重要(几乎所有)libav 的函数,以获得更广泛的 ffmpeg 工作流程图景。有关如何调用 libav 函数调用的信息,可以参考 doxygen 文档和 ffmpeg-cli-source 文件。

于 2021-02-22T10:31:27.117 回答