ffserver能否流式传输mp4格式的视频?

3

我试图使用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个回答

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),并从URL观看:

ip-address:port/streamTest.asf

摘要:

我也还在学习ffserver的使用方法,所以可能会有些错误 :)

这是一份ffserver文档章节的简短概述,可以帮助你入门。

5.2 全局选项

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

5.3 Feed 部分

Feed 部分是 ffserver 的核心部分之一。由于一个 feed 可以提供多个流,因此首先建立 feed 可能会很有用。
注意: 只有当您想要
a) 实时流传输
b) 传输不存储在服务器上的文件
c) 在流传输之前对文件进行处理时,才需要 Feed。

5.4 Stream 部分

这里你可以实际构建自己的流。有很多可以改变的变量,我建议从添加/自定义选项开始慢慢入手。 从这一点上,文档做得很好。现在你知道了需要什么(我觉得可能性无限,但我还是个初学者^^),以及基础知识的位置。
你的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>

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


你能否总结一下链接页面中相关的部分? - MTCoster

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接