2012-10-18 108 views
3

我想通过RTSP使用ffserver流媒体到目前为止没有运气mp4文件。我只是想直接从文件流,而不从ffmpeg馈送(不涉及代码转换)。但我已经使它与mpg视频一起工作。通过RTSP与ffserver流MP4文件

这里是我的ffserver的配置文件

Port 8090 
BindAddress 0.0.0.0 
MaxHTTPConnections 2000 
MaxClients 1000 
MaxBandwidth 500000 
CustomLog - 
NoDaemon 

RTSPPort 7654 
RTSPBindAddress 0.0.0.0 

<Stream test1-rtsp> 
    Format rtp 
    File "/home/g/video_streaming/sample3-mpeg2.mpg" 
</Stream> 
<Stream test2-rtsp> 
    Format rtp 
    File "/home/g/video.mp4" 
</Stream> 

当我启动ffserver的,一切似乎罚款基于日志输出:

$ ./dev/ffmpeg/ffserver -f ffserver-sample.conf 
ffserver version N-45673-gd0c27e8 Copyright (c) 2000-2012 the FFmpeg developers 
    built on Oct 18 2012 10:36:52 with gcc 4.6 (Ubuntu/Linaro 4.6.3-1ubuntu5) 
    configuration: 
    libavutil  51. 76.100/51. 76.100 
    libavcodec  54. 66.100/54. 66.100 
    libavformat 54. 33.100/54. 33.100 
    libavdevice 54. 3.100/54. 3.100 
    libavfilter  3. 19.103/3. 19.103 
    libswscale  2. 1.101/2. 1.101 
    libswresample 0. 16.100/0. 16.100 
Thu Oct 18 11:54:22 2012 Opening file '/home/g/video.mp4' 
Thu Oct 18 11:54:22 2012 Opening file '/home/g/video.mp4' 
Thu Oct 18 11:54:23 2012 Opening file '/home/g/video_streaming/sample3-mpeg2.mpg' 
Thu Oct 18 11:54:23 2012 [mpeg @ 0x1dae3c0]max_analyze_duration 5000000 reached at 5005000 
Thu Oct 18 11:54:23 2012 Opening file '/home/g/video_streaming/sample3-mpeg2.mpg' 
Thu Oct 18 11:54:23 2012 [mpeg @ 0x1dae3c0]max_analyze_duration 5000000 reached at 5005000 
Thu Oct 18 11:54:23 2012 FFserver started. 

最后,如果我为了测试服务器运行ffplay ,一切工作正常的MPG文件,但不适用于MP4:

$ ffplay rtsp://192.168.1.99:7654/test2-rtsp 
ffplay version N-45656-g916352f Copyright (c) 2003-2012 the FFmpeg developers 
    built on Oct 17 2012 16:14:14 with gcc 4.4.5 (Ubuntu/Linaro 4.4.4-14ubuntu5.1) 
    configuration: 
    libavutil  51. 76.100/51. 76.100 
    libavcodec  54. 66.100/54. 66.100 
    libavformat 54. 33.100/54. 33.100 
    libavdevice 54. 3.100/54. 3.100 
    libavfilter  3. 19.103/3. 19.103 
    libswscale  2. 1.101/2. 1.101 
    libswresample 0. 16.100/0. 16.100 
rtsp://192.168.1.99:7654/test2-rtsp: Invalid data found when processing input 

Server's output: 

Thu Oct 18 11:57:51 2012 FFserver started. 
Thu Oct 18 11:58:01 2012 192.168.1.101 - - [DESCRIBE] "rtsp://192.168.1.99:7654/test2-rtsp RTSP/1.0" 200 167 
Segmentation fault (core dumped) 

我不真实我知道我可能会错过什么。我刚刚读了in the official doc,表示从一个文件流式传输是有点破碎。由于我不知道这是否是最新的,我决定在这里尝试一下。

任何帮助或建议?备择方案?

在先进的感谢,

回答

1

如果您正在寻找替代LIVE555(http://www.live555.com/)和达尔文服务器都是不错的选择。我已经使用了它们,并且在从文件流中传输时表现良好。

在上述情况下,您甚至可以通过分析核心转储来尝试调试。通过查看日志,我认为服务器即使在收到播放命令之前也会崩溃。因此,它可能是一个小的乡下人,某处

+1

凤也不错。至少比ffserver好多了。 – vipw

0

只有4年后...

使用ffserver的,因为它包含在文件头全局元数据,因此无法串流MP4视频 - 制作随机流访问不可能。 [source]

可能的替代:

// convert awesome.mp4 to awesome.flv 

$ ffmpeg -i awesome.mp4 -c:v libx264 -ar 22050 -crf 28 awesome.flv 

更多关于FFmpeg的...去blog