2

我尝试使用 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 文件。

4

2 回答 2

1

是的。

流式传输 mp4 文件非常有可能使用ffserver. 但是,它可能需要阅读一些文档:

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-documentation 开始的章节的简短摘要。

5.2 全局选项

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

5.3 进料部分

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

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>

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

于 2015-11-02T13:02:08.867 回答
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
于 2017-10-29T15:30:57.783 回答