【问题标题】:How to stream all videos in a folder?如何流式传输文件夹中的所有视频?
【发布时间】:2013-06-14 11:42:57
【问题描述】:

您好,我想使用 ffserver 通过网络流式传输视频。我得到了this 链接作为参考。

现在我无法弄清楚的是如何将文件夹(其中包含我想要流式传输的所有视频)作为输入来传输所有视频。我还想不时向这个文件夹动态添加更多视频,并且应该发生流式传输(就像它在达尔文中的工作方式一样)。现在我不能使用 Darwin,因为它不支持 iOS。

请给我一个建议。

有没有其他开源工具可以做到这一点?

【问题讨论】:

  • 我正在尝试做同样的事情并且有一种感觉:(1)您需要预先配置您流式传输的每个文件,并且(2)您只能进行直播(不太确定) .请注意,这些是 wowsa 和 red5 等其他服务。祝你好运!

标签: ffmpeg streaming video-streaming audio-streaming ffserver


【解决方案1】:

我为此编写了一个 bash 脚本,它在 ubuntu 16 中运行 希望其他人可以用不那么糟糕的语言写出来 这是脚本:

echo -e "HTTPPort 8090\nHTTPBindAddress 0.0.0.0\nMaxHTTPConnections 2000\nMaxClients 1000\nMaxBandwidth 1000\nCustomLog -\n<Stream stat.html>\nFormat status\n</Stream>"
num=1
for i in *.mp3; do
echo -e "<Stream \"$(urlencode $i)\">\nFile \"$(pwd)/$i\"\nFormat mp2\nAudioCodec libmp3lame\nAudioBitRate 64\nAudioChannels 1\nAudioSampleRate 44100\nNoVideo\n</Stream>"
done

将此作为bash脚本保存在您要服务的文件夹中,我将其称为:

./gen_ffserver_conf.sh

它是为 mp3 硬编码的,你必须对我的回声进行排序才能让它做另一种格式。 运行服务器:

ffserver -f <(bash -e ./gen_ffserver_conf.sh)

我必须为 url 编码安装一个包:

sudo apt install gridsite-clients

(当然你也需要 ffserver,在 ffmpeg 包中)

我通过以下方式流式传输文件:

http://<ip address of streaming server>:8090/stat.html

并单击 urlencoded 值(使用铬)。这将打开流并开始播放。

说明: ffserver 不喜欢通配符,或者至少我从来没有想过,所以我只是为服务器中的每个文件创建一个条目。 urlencoding 很烦人,但对于 stat 页面链接正常工作是必需的。

【讨论】:

  • 关于该脚本如何自动拾取新添加的 mp3 的任何想法。
  • 这是一个奇怪的行为,它可能是 ffserver 的更新版本,不需要我显式的 for 循环来为每个文件在 conf 中生成一个元素?那太好了。
  • 对不起,我想我在这里造成了混乱。我在问是否有任何方法ffserver自动检测并自动将文件添加到conf?
  • 哦,你说的是过去时,所以我以为它已经发生了。我能看到的唯一方法可能是使用Inotify。也许使用inotifywait 挂起一个杀死并重新启动服务器的进程。我认为你必须重新加载浏览器页面,如果这是一个问题。此时,使用不同的解决方案可能更容易。所需的 bash 脚本听起来很笨拙。
猜你喜欢
  • 2015-08-22
  • 1970-01-01
  • 2010-10-25
  • 1970-01-01
  • 1970-01-01
  • 2020-06-25
  • 2011-02-27
  • 2013-01-25
  • 1970-01-01
相关资源
最近更新 更多