Kri*_*ndu 5 streaming ffmpeg video-streaming audio-streaming ffserver
嗨,我想使用ffserver通过网络流式传输视频.我得到这个链接作为参考.
现在我无法弄清楚的是如何将一个文件夹(我希望流式传输的所有视频内容)作为输入来传输所有视频.我还想不时地在这个文件夹中动态添加更多视频,并且应该发生流式传输(比如它在达尔文的工作方式).现在我不能使用Darwin,因为它不支持iOS.
请给我一个建议.
有没有其他开源工具,我可以做到这一点?
我为此编写了一个 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 很烦人,但对于统计页面链接的正常工作是必要的。
| 归档时间: |
|
| 查看次数: |
1236 次 |
| 最近记录: |