mp4流能用ffserver吗?

时间:2015-02-17 18:09:21

标签: ffmpeg streaming mp4 ffserver

我尝试使用ffserver传输mp4文件的日子 我读了很多这样的问题:
https://superuser.com/questions/563591/streaming-mp4-with-ffmpeg
Begin stream simple mp4 with ffserver
http://ffmpeg.gusari.org/viewtopic.php?f=12&t=1190
http://ffmpeg.org/pipermail/ffserver-user/2012-July/000204.html
HTML5 - How to stream large .mp4 files?

最后我无法理解mp4流是否能够? 这是用ffserver做到这一点的方法吗? 有没有样品?我看过有帮助但他们最关于直播但是我 只想流一个简单的mp4文件。

2 个答案:

答案 0 :(得分:1)

使用ffserver可以流式传输mp4文件。但是,可能需要阅读一些文档:

https://ffmpeg.org/ffmpeg.html

https://ffmpeg.org/ffserver.html

关键部分是为ffserver(ffserver.conf)编写配置文件。据我所知,ffmpeg提供了一个样本配置列表:

虽然它们可能有点过时,但如果您尝试运行它们,ffserver会告诉您某些内容是否应该如此:)

修改

(因为我只有1的代表,我不能发布超过2个链接我删除了样本并在下面显示了一个相当简单的链接)

要传输mp4文件,您可能必须考虑ffserver可能在mp4格式中流式传输时遇到问题。仍然可以流式传输mp4文件,但格式不同。

非常简单的方式是这样的:

<Stream streamTest.asf>    #ASF as the streaming Format
File "/tmp/video1.mp4"     #or wherever you store your Videos
</Stream>

服务器自己转换文件,但是如果你真的想要在mp4中传输,你可能需要仔细查看“碎片mp4”。

要观看流,请使用可以处理asf的播放器(我使用过VLC)并通过网址观看:

ip-address:port/streamTest.asf

<强>摘要

应该说我还在学习ffserver的方法,所以可能会有一些错误:)

这是ffserver-documentation开始的章节的简短摘要。

5.2全球选项

本章中的选项指定您的服务器设置。例如,应该处理多少个同时请求。您想要流式传输哪个端口等...对于ffserver全新的人来说,大多数默认值都应该足够了。

5.3 Feed部分

Feed部分是ffserver的核心部分之一。由于Feed可以提供多个流,因此首先构建它可能很有用。
注意:只有在您想要a)直播流时才需要Feed b)流媒体文件未存储在您的服务器上
c)流式传输之前弄乱文件

5.4流部分

在这里,您实际上可以构建自己的流。有很多变量可以更改,我建议通过添加/自定义选项慢慢开始。 从这一点开始,文档做得不错。所以现在你知道了,你需要什么(再次,我觉得可能性是无数的,但我还是初学者^^)以及在哪里找到基础知识。

ffserver.conf的结构可能(但不一定)如下所示:

#Options from 5.2
HTTPPort 8090
#...
#Feed (Options from 5.3)
<Feed feed1.ffm>
#...
</Feed>
#
#Stream (Options from 5.4)
<Stream stream1.asf>
Feed feed1.ffm
Format asf
NoAudio
#...
</Stream>

由于这是我的第一篇文章,我希望它不会太乱:)

答案 1 :(得分:0)

ffserver.conf:

HTTPPort 8090
HTTPBindAddress 0.0.0.0
RTSPPort 8091
MaxHTTPConnections 2000
MaxClients 1000
MaxBandwidth 1000
CustomLog -

<Stream 1.mp4>
File "/path/1.mp4"
Format rtp
</Stream>

开始:

ffserver -f ffserver.conf

玩:

ffplay rtsp://localhost:8091/1.mp4