我尝试使用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文件。
答案 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开始的章节的简短摘要。
本章中的选项指定您的服务器设置。例如,应该处理多少个同时请求。您想要流式传输哪个端口等...对于ffserver
全新的人来说,大多数默认值都应该足够了。
Feed部分是ffserver
的核心部分之一。由于Feed可以提供多个流,因此首先构建它可能很有用。
注意:只有在您想要a)直播流时才需要Feed b)流媒体文件未存储在您的服务器上
c)流式传输之前弄乱文件
在这里,您实际上可以构建自己的流。有很多变量可以更改,我建议通过添加/自定义选项慢慢开始。 从这一点开始,文档做得不错。所以现在你知道了,你需要什么(再次,我觉得可能性是无数的,但我还是初学者^^)以及在哪里找到基础知识。
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