ffmpeg+ffserver

来源:互联网 发布:企业会计准则 知乎 编辑:程序博客网 时间:2024/05/21 17:07

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配置

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

启动ffserver服务器

1ffserver -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
2AudioBitRate  128kb
3AudioChannels 2
4AudioSampleRate 44100
5AVOptionAudio flags +global_header

在输入中加入声音捕获:

1ffmpeg  -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

0 0
原创粉丝点击