如何流式传输文件夹中的所有视频?

Kri*_*ndu 5 streaming ffmpeg video-streaming audio-streaming ffserver

嗨,我想使用ffserver通过网络流式传输视频.我得到这个链接作为参考.

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

请给我一个建议.

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

Gri*_*all 0

我为此编写了一个 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
Run Code Online (Sandbox Code Playgroud)

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

./gen_ffserver_conf.sh
Run Code Online (Sandbox Code Playgroud)

它是针对 mp3 进行硬编码的,您必须对我的回声进行排序才能使其采用其他格式。使用以下命令运行服务器:

ffserver -f <(bash -e ./gen_ffserver_conf.sh)
Run Code Online (Sandbox Code Playgroud)

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

sudo apt install gridsite-clients
Run Code Online (Sandbox Code Playgroud)

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

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

http://<ip address of streaming server>:8090/stat.html
Run Code Online (Sandbox Code Playgroud)

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

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