• 基于ffmpeg的流媒体服务器


    OS:ubuntu 12.04
    ffmpeg:N-47141-g4063bb2
    x264:0.133.2334 a3ac64b
    目标:
    使用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服务器

    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

  • 相关阅读:
    word转HTML并使用于浏览器界面
    配置wampserver出现服务器错误问题
    SVN使用及配置pycharm、本地Linux虚拟机教程
    加载本地json文件,调试出现 Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https.解决方法
    转载:有关Html中<a>、<link>和<script>标签中相对路径与绝对路径的问题总结
    asp.net 登出设置
    Maven依赖中的scope详解
    什么情况下用resultType和 resultMap
    修改tomcat默认端口号8080
    SpringMVC
  • 原文地址:https://www.cnblogs.com/lidabo/p/3701071.html
Copyright © 2020-2023  润新知