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

时间:2013-06-18 09:54:42

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

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

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

请给我一个建议。

还有其他开源工具可以用来做到这一点吗?

1 个答案:

答案 0 :(得分: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

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

./gen_ffserver_conf.sh

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

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

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

sudo apt install gridsite-clients

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

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

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

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

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