网站首页 > 物联资讯 > 技术分享

基于ffmpeg的流媒体服务器

2016-09-28 00:00:00 广州睿丰德信息科技有限公司 阅读
睿丰德科技 专注RFID识别技术和条码识别技术与管理软件的集成项目。质量追溯系统、MES系统、金蝶与条码系统对接、用友与条码系统对接

OS:ubuntu 12.04
ffmpeg:N-47141-g4063bb2
x264:0.133.2334 a3ac64b
目标:
使用ffserver建立流媒体服务器
使用ffmpeg对本地文件流化(x264编码器)
使用ffplay播放

目录 [hide]

ffserver.conf配置

1 Port 8090  #访问端口 2 RTSPPort 554 #rtsp端口 3 BindAddress 0.0.0.0 #服务器地址绑定 4 MaxHTTPConnections 2000 #允许的最大连接数 5 MaxClients 1000 #最大的客户数 6 MaxBandwidth 10000 7 CustomLog - 8   9 <Feed feed1.ffm> 10 File /tmp/feed1.ffm 11 FileMaxSize 1G 12 ACL allow 127.0.0.1 #只允许本地连接 13 </Feed> 14   15 ################ asf ################ 16   17 <Stream test.asf> 18 Feed feed1.ffm 19 Format asf #流媒体格式 20 VideoCodec libx264 #编码格式 21 VideoFrameRate 25 #桢率 22 VideoSize 1024x768 #播放大小 23 VideoBitRate 2M #码率 24 VideoBufferSize 10000000 25 VideoGopSize 24 26 StartSendOnKey 27 Preroll 5 28 #使用x264编码时必须有下面的4个参数 29 VideoQMin 3 30 VideoQMax 31 31 AVOptionVideo flags +global_header 32 AVOptionAudio flags +global_header 33 NOAudio 34 </Stream> 35   36 ################ flv ################ 37   38 <Stream test.flv> 39   40 Feed feed1.ffm 41 Format flv 42   43 NoAudio 44 #AudioBitRate  32  45 #AudioChannels 2 46 #AudioSampleRate  44100 47 #AVOptionAudio flags +global_header 48 #AudioCodec libmp3lame 49   50 #NoVideo 51 VideoBitRate  1024 52 VideoFrameRate  40  53 VideoSize 1280x720 54 VideoBufferSize 1000000 55 VideoCodec libx264 56   57 VideoQMin 3 58 VideoQMax 31  59   60 VideoBitRateTolerance 100 61 VideoGopSize 12  62 StartSendOnKey 63   64 AVOptionVideo qmin 3 65 AVOptionVideo qmax 31 66 #AVOptionVideo quality good 67 #AVOptionVideo cpu-used 0 68 AVOptionVideo flags +global_header 69 #AVOptionVideo keyint_min 25 70 #AVOptionVideo qcomp 0.6 71 AVOptionVideo qdiff 4 72 #AVOptionVideo me_range 16 73 #Preroll 15 74 </Stream> 75   76 ################ rtsp ################ 77   78 <Stream live.h264> 79 Format rtp 80 Feed feed1.ffm 81 VideoCodec libx264 82 #VideoFrameRate 7 83 VideoBitRate 300 84 #VideoSize 480x272 85 VideoSize 352x288 86 #AVPresetVideo default 87 AVPresetVideo superfast 88 AVOptionVideo flags +global_header 89   90 PixelFormat yuv420p 91 AVOptionVideo me_range 4 92 AVOptionVideo qdiff 4 93 AVOptionVideo qmin 2 94 AVOptionVideo qmax 51 95   96 #MulticastAddress 224.124.0.1 97 #MulticastPort 5000 98 #MulticastTTL 1 99   100 NoAudio 101 #AudioCodec libfaac 102 #AudioBitRate 32 103 #AudioChannels 2 104 #AudioSampleRate 22050 105 #AVOptionAudio flags +global_header 106 </Stream> 107   108 ################ html ################ 109   110 <Stream stat.html> 111 Format status 112 # Only allow local people to get the status 113 ACL allow localhost 114 ACL allow 192.168.0.0 192.168.255.255 115 #FaviconURL http://pond1.gladstonefamily.net:8080/favicon.ico 116 </Stream> 117   118 # Redirect index.html to the appropriate site 119 <Redirect index.html> 120 URL http://www.ffmpeg.org/ 121 </Redirect>

启动ffserver服务器

1 ffserver -d -f ./ffserver.conf

使用ffmpeg对本地文件流化

1 ./ffmpeg -i  ./1.mov -vcodec libx264  -qmin 3 -qmax 31 -qdiff 4 -me_range 16 -keyint_min 25 -qcomp 0.6 -b 9000K    http://localhost:8090/feed1.ffm

捕捉本地摄像头数据

1 ./ffmpeg -f video4linux2 -i /dev/video0 http://localhost:8090/feed1.ffm

为流媒体增加声音

在ffmserver.conf中打开声音:

1 #NoAudio 2 AudioBitRate  128kb 3 AudioChannels 2 4 AudioSampleRate 44100 5 AVOptionAudio flags +global_header

在输入中加入声音捕获:

1 ffmpeg  -f v4l2 -i  /dev/video0  -f alsa  -i hw:0,0 http://localhost:8090/feed_tv.ffm

使用ffplay播放

1 ./ffplay  mmsh://localhost:8090/test.asf 2 ./ffplay  http://localhost:8090/test.flv 3 ./ffplay  rtsp://localhost:554/live.h264

git: https://github.com/lnmcc/multi_stream_server.git

RFID管理系统集成商 RFID中间件 条码系统中间层 物联网软件集成