1 用FFserver从文件生成流媒体
一、安装ffmpeg
在ubuntu下,运行sudo apt-get ffmpeg 安装ffmpeg,在其他linux操作系统下,见ffmpeg的编译过程(编译完成后可执行自动安装)。
二、准备预播放的媒体文件
如test.Mp3,在本文档中,默认放入用户文件夹下得Music文件夹内.(直接从设备采集不在本文档叙述范围之内)
三、修改ffserver配置信息
ffserver配置文件为: /etc/ffserver.conf 打开,填写配置信息.配置信息包括三方面:
1.端口绑定等基本信息,在/etc/ffserver.conf 中有详细注释,在此不再重复,最终配置信息为:
Port 8090
BindAddress 0.0.0.0
MaxHTTPConnections 2000
MaxClients 1000
MaxBandwidth 1000
2.媒体文件配置信息.本信息根据具体的媒体文件类型直接在配置文件中取消注释掉相应文件类型的配置信息,然后填写文件路径即可:
# MP3 audio
<Stream test.mp3>
File "/home/xiaoma/Music/test.mp3"
Format mp2
NoVideo </Stream>
四、启动ffserver
在终端中运行: sudo ffserver -f /etc/ffserver.conf 启动ffserver.
五、播放流媒体
在浏览器中输入http://127.0.0.1:8090/test.mp3 即可播放音乐.
在终端中输入ffplay http://localhost:8090/test.mp3 可播放流媒体.
2 用FFserver从设备生成实时流
一、准备媒体按照上节步骤安装ffmpeg,保证摄像头和声卡可用,将从摄像头和声卡获取音视频信息。
二、修改ffserver配置信息
ffserver配置文件为: /etc/ffserver.conf 打开,填写配置信息.配置信息包括三方面:
1.端口绑定等基本信息,在/etc/ffserver.conf 中有详细注释,在此不再重复,最终配置信息为:
Port 8090
BindAddress 0.0.0.0
MaxHTTPConnections 2000
MaxClients 1000
MaxBandwidth 1000
2.fend(传冲信息),在文件播放中,基本不用动本配置信息,只需要根据具体情况分配缓冲文件.最终配置信息如
<Feed feed1.ffm>
File /tmp/feed1.ffm
FileMaxSize 2M
ACL allow 127.0.0.1
</Feed>
3.媒体文件配置信息.本信息根据具体的媒体文件类型直接在配置文件中取消注释掉相应文件类型的配置信息,然后填写文件路径即可:
(中间会有很多很多配置信息,都是关于音视频的,有些配置还不懂,慢慢摸索吧)
<Stream test1.mpg>
Feed feed1.ffm
Format mpeg
AudioBitRate 32
AudioChannels 1
AudioSampleRate 44100
VideoBitRate 64
VideoBufferSize 40
VideoFrameRate 3
VideoSize 160x128
VideoGopSize 12
</Stream>
# Flash
<Stream test.swf>
Feed feed1.ffm
Format swf
VideoFrameRate 2
VideoIntraOnly
NoAudio
</Stream>
三、启动FFserver
在终端中运行: sudo ffserver -f /etc/ffserver.conf 启动ffserver.
四、启动ffmpeg 本例中,以ffmpeg作为实时摄像头采集输入.
在命令行中输入: ./ffmpeg -f video4linux2 -r 25 -i /dev/video0 /tmp/feed1.ffm
如果有音频设备,则采集音频的命令如下: ./ffmpeg -f oss -i /dev/dsp -f video4linux2 -r 25 -i /dev/video0 /tmp/feed1.ffm (音频格式参数自己配置)
五、播放流媒体在浏览器中输入
http://127.0.0.1:8090/test1.mpg 即可播放音乐.
在终端中输入ffplay http://localhost:8090/test.swf 可播放流媒体.