基于ffmpeg的流媒體服務器
睿豐德科技 專注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中間件 條碼系統中間層 物聯網軟件集成