[Rtsp]RTSP对实时摄像头视频流进行转换(FFmpeg+FFserver)

http://www.cuplayer.com/player/PlayerCode/RTSP/2014/0706/1414.html

输入数据为来自摄像头的RTSP视频流,然后利用FFmpeg将其输出到FFserver监听的服务(Feed)上,然后客户端(vlc)可以播放FFserver广播的经过转换后的视频流

1.一、问题描述

输入数据为来自摄像头的RTSP视频流,然后利用FFmpeg将其输出到FFserver监听的服务(Feed)上,然后客户端(vlc)可以播放FFserver广播的经过转换后的视频流(Streams)。

通过FFserver的配置文件来配置视频流的转换参数(帧大小,帧频等)

2.二、实现方法

  1. 编辑FFserver配置文件,参考官网配置文件说明(ffserver.conf)
    Port 8090                       #绑定端口号
    BindAddress 0.0.0.0             #绑定ip
    MaxHTTPConnections 2000         #最大HTTP连接数
    MaxClients 1000                 #最大客户端连接数
    MaxBandwidth 1000               #最大带宽
    CustomLog -                     #日志文件,“-”为直接打印
    NoDaemon                        #默认全局参数
    
                    #Feed:每一个输入(摄像头)建立一个Feed
        File /tmp/feed1.ffm             #Feed缓存文件
        FileMaxSize 200K                #缓存文件最大值
        ACL allow 127.0.0.1             #允许写入Feed的ip
    
    
                   #Stream:每一个广播(转换后的视频流)的转码设置项目
        Format flv                      #视频流格式
        Feed feed1.ffm                  #视频流的种子来源
        VideoFrameRate 40               #视频帧频
        VideoBitRate 128                #视频比特率
        VideoSize 160x80                #视频帧大小
        AVOptionVideo flags +global_header
        AudioBitRate 24                 #音频比特率
        AudioChannels 1                 #音频声道
        AudioSampleRate 44100
        AVOptionAudio flags +global_header
    

     

  2. 启动FFserver,终端输入命令:
    ffserver -f ffserver.conf

     

  3. 启动FFmpeg,终端输入命令:
    ffmpeg -i rtsp://192.168.1.111:8000/?videoCodecType=H.264 http://localhost:8090/feed1.ffm
    
    #-i:为输入参数选项
    #rtsp://192.168……:为输入的RTSP视频流
    #http://localho……:为FFserver配置文件中设置的Feed的监听地址和端口

     

  4. 打开客户端(vlc)请求视频流地址:打开vlc–>File–>OpenNetwork–>URL中填写 “http://localhost:8090/test.flv”–>Open  (地址为FFserver配置文件中Stream项的名字)

3.参考链接:

FFserver官方文档:1. ffserver tool and FFmpeg components  2. 配置文件示例



你可能感兴趣的:(android,ubuntu)