锐英源软件
第一信赖

精通

英语

开源

擅长

开发

培训

胸怀四海 

第一信赖

当前位置:锐英源 / 开源技术 / ffmpeg / 基于ffmpeg的流媒体服务器
服务方向
人工智能数据处理
人工智能培训
kaldi数据准备
小语种语音识别
语音识别标注
语音识别系统
语音识别转文字
kaldi开发技术服务
软件开发
运动控制卡上位机
机械加工软件
软件开发培训
Java 安卓移动开发
VC++
C#软件
汇编和破解
驱动开发
联系方式
固话:0371-63888850
手机:138-0381-0136
Q Q:396806883
微信:ryysoft

基于ffmpeg的流媒体服务器

前言

众所周知,FFMPEG在流媒体领域有显赫地位,是核心开源项目。我们中的很多人已经选择不同的模块,如媒体处理器,来转换他们的flv视频文件。该模块将帮助你将你的视频文件转换成flv文件,可以很容易地串流。 另外你可以使用这段代码可以得到高质量的flv。 甚至有些商业软件也使用了FFMPEG的代码,有的是直接使用,有的是间接使用。FFMPEG的流行是必然的。本文介绍用它搭建流媒体服务器。

目标:

使用ffserver建立流媒体服务器

使用ffmpeg对本地文件流化(x264编码器)

使用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服务器

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

2 AudioBitRate 128kb

3 AudioChannels 2

4 AudioSampleRate 44100

5 AVOptionAudio 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

友情链接
版权所有 Copyright(c)2004-2021 锐英源软件
公司注册号:410105000449586 豫ICP备08007559号 最佳分辨率 1024*768
地址:郑州大学北校区院(文化路97号院)内