C - 来自C程序的FFmpeg流?

时间:2013-04-25 22:30:22

标签: c ffmpeg ffserver

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

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

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

我很难找到关于如何使用FFmpeg库的流功能的解释,因为它们非常具体,因此不会过于复杂。任何人都可以解释我如何编写上述命令的代码?或者至少指出一些文档来解释如何编写这样的脚本/程序?非常感谢!

编辑:我希望最终能够从iPhone应用程序运行这个,所以我不能直接从我的程序中调用FFmpeg。我需要使用FFmpeg使用的库。

1 个答案:

答案 0 :(得分:4)

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

quite a few tutorials可用如何使用FFmeg的库(其中一些使用过时的API),另请查看“doc / examples”目录中的演示代码。< / p>

希望它有所帮助!

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