我尝试用ffserver流式传输mp4文件的日子
我读过很多这样的问题:
https://superuser.com/questions/563591/streaming-mp4-with-ffmpeg
使用ffserver开始流式传输简单mp4
http://ffmpeg.gusari.org/viewtopic.php?f=12&t=1190
http://ffmpeg.org/pipermail/ffserver-user/2012-July/000204.html
HTML5-如何流式传输大型.mp4文件?
最后我不明白mp4流能不能
这是用ffserver实现这一点的一种方法吗
有样品吗?我阅读帮助,但他们最喜欢直播,但我只想流式传输一个简单的mp4文件。
是。
使用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)的播放器,并从URL:观看
ip-address:port/streamTest.asf
摘要:
应该说,我还在学习ffserver的方法,所以可能会有一些错误:)
这是对ffserver文档中的章节的简短总结。
5.2全局选项
本章中的选项指定您的服务器设置。例如,应该处理多少个同时请求。你想在哪个端口上进行流式传输等等……对于完全不熟悉ffserver
的人来说,大多数默认值应该足够了。
5.3进料段
进料部分是ffserver
的核心部件之一。由于一个提要可以服务于多个流,因此首先构建它可能很有用
注意:只有当您想
a)实时流式传输
b)流式传输未存储在服务器上的文件时,才需要Feed
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>
由于这是我的第一篇文章,我希望它不要太混乱:)
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