基于ffmpeg的流媒体服务器
                                                            生活随笔
收集整理的這篇文章主要介紹了
                                基于ffmpeg的流媒体服务器
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.                        
                                OS:ubuntu 12.04
ffmpeg:N-47141-g4063bb2
x264:0.133.2334 a3ac64b
目標:
使用ffserver建立流媒體服務器
使用ffmpeg對本地文件流化(x264編碼器)
使用ffplay播放
目錄 [hide]
??? 1 ffserver.conf配置
??? 2 啟動ffserver服務器
??? 3 使用ffmpeg對本地文件流化
??? 4 捕捉本地攝像頭數據
??? 5 為流媒體增加聲音
??? 6 使用ffplay播放
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
總結
以上是生活随笔為你收集整理的基于ffmpeg的流媒体服务器的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: ffmpeg 添加水印LOGO
- 下一篇: rtmp推流直播流程
