Chinaunix首页 | 论坛 | 博客
  • 博客访问: 474458
  • 博文数量: 95
  • 博客积分: 1773
  • 博客等级: 上尉
  • 技术积分: 1641
  • 用 户 组: 普通用户
  • 注册时间: 2007-08-17 23:28
文章分类
文章存档

2018年(2)

2017年(10)

2016年(7)

2015年(48)

2014年(2)

2013年(2)

2012年(2)

2011年(7)

2010年(7)

2009年(3)

2008年(1)

2007年(4)

分类: LINUX

2014-11-12 14:20:32

ffmpeg中包含ffserver,可以配合ffmpeg实现最简单的视音频直播(实时采集的)。
实现直播的关键是
0.linux中视频/音频采集设备的正确驱动
1. ffmpeg的正确安装
2. ffserver的正确配置
3.采集模式的正确设置(参数选择)
4.正确播放模式
对于0,我在debian 7 上测试,作为服务器和采集计算机的都安装的debian7,其中服务器安装的64bit 版本 (ip 192.168.0.2),采集机安装的32bit 版本( ip地址192.168.0.3),在采集机上以oss驱动方式安装好了声卡驱动,另外采用一个杂牌USB免驱(windows下免驱)的摄像头,在debian 7上也正确识别了(摄像头分辨率 640×480,帧率30)

对于1,采用包安装方式,导人了deb-multimedia源安装了超过1.0的ffmpeg版本(默认的是0.6 左右的版本,太老了)。

对于2,是关键,我直接贴出测试的有效配置
/etc/ffserver.conf 文件有效内容

点击(此处)折叠或打开

  1. Port 8090
  2. BindAddress 0.0.0.0
  3. MaxHTTPConnections 2000
  4. MaxClients 10
  5. MaxBandwidth 10000
  6. CustomLog -
  7. NoDaemon
  8. <Feed feed1.ffm> #配置服务器视频缓冲
  9. File /tmp/feed1.ffm
  10. FileMaxSize 5M
  11. ACL allow 127.0.0.1
  12. ACL allow 192.168.0.1 192.168.0.255 #允许访问服务的地址范围,前面一个写最小的,后面一个写最大的
  13. </Feed>
  14. <Stream test.webm> # 配置输出的视频流(用作点播)
  15. Format webm
  16. Feed feed1.ffm # 配置从那个视频缓冲中获取数据源
  17. AudioCodec vorbis
  18. AudioBitRate 64 # 音频码率
  19. VideoCodec libvpx
  20. VideoSize 640X480 # 视频分辨率
  21. VideoFrameRate 30 # 视频帧率
  22. AVOptionVideo flags +global_header # Parameters passed to encoder
  23. AVOptionVideo cpu-used 0
  24. AVOptionVideo qmin 10
  25. AVOptionVideo qmax 42
  26. AVOptionVideo quality good
  27. AVOptionAudio flags +global_header
  28. PreRoll 15
  29. StartSendOnKey
  30. VideoBitRate 4000 # 视频码率
  31. </Stream>
  32. <Stream stat.html>
  33. Format status
  34. ACL allow localhost
  35. ACL allow 192.168.0.0 192.168.255.255
  36. </Stream>
  37. <Redirect index.html>
  38. URL http://www.ffmpeg.org/
  39. </Redirect>
然后运行

点击(此处)折叠或打开

  1. ffserver -f /etc/ffserver.conf
3. 采集命令

点击(此处)折叠或打开

  1. ffmepg -f oss -i /dev/dsp -ac 1 -f video4linux2 -i /dev/video0 http://192.168.0.2:8090/feed1.ffm
解释:

点击(此处)折叠或打开

  1. -f oss -i /dev/dsp -ac 1            #表示采集oss模式声卡的输入设备/dev/dsp中通道1的声音
  2. -f video4linux2 -i /dev/video0      #表示采集视频输入设备/dev/video0的视频
  3. http://192.168.0.2:8090/feed1.ffm   #是输出位置,要和前面ffserver的配置匹配才能直播
4.在线播放,因为这里采用了webm的编码,所以可以在谷歌浏览器或者firefox浏览器中直接输入http://192.168.0.2:8090/test.webm来观看,也可以利用支持在线播放的诸如vlc播放器来播放。

当然这个仅仅是功能的测试,不能用作实际的服务。
阅读(1615) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~