1

我正在寻找在我的 C 代码中复制 FFmpeg 命令行命令。具体来说,我希望能够运行:

ffmpeg -re -i video.mp4 -f mpegts udp://localhost:7777

在查看在他们自己的代码中使用 FFmpeg 库的人们的代码时,我注意到的一件事是,他们通常有几百行代码用于类似于 FFmpeg 命令行命令的单个命令。我猜这只是因为他们正在做一些非常具体的事情,因为如果我可以在我的命令行上运行那个简短的命令并得到我想要的东西,它可能只需要大约十行代码就可以在我的 C 中做同样的事情代码。这应该只需要做那么多的工作,对吧?为什么需要更多?

我很难找到有关如何使用 FFmpeg 库的流功能的解释,这些功能并不过分复杂,因为它们用于非常特定的目的。谁能解释我如何为上述命令编写代码?或者至少指向我一些解释如何编写这样一个脚本/程序的文档?非常感谢!

编辑:我确实希望最终从 iPhone 应用程序中运行它,这样我就不能直接从我的程序中直接调用 FFmpeg。我需要使用 FFmpeg 使用的库。

4

1 回答 1

4

FFmpeg 的内部库(libavcode、libavformat 等)具有相当复杂的代码结构。您将需要时间来了解基本的工作原理,然后您应该尝试编写一些简单的测试应用程序,然后您才能复制给定的命令。

很多 教程可以使用 FFmeg 的库(其中一些使用过时的 API),请查看“doc/examples”目录中的演示代码

希望能帮助到你 !

来自评论:
检查来自最新 FFmpeg 版本的示例/muxing.c 源。尝试提供 URL 而不是输出文件。检查文档/来源的avformat_alloc_output_context2()功能。然后您应该了解如何添加流媒体支持的基本概念

于 2013-04-26T12:16:48.733 回答