基於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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.