2014-06-26 51 views
2

我想使用cvlc将现场rtsp流转码为mp4文件,但是获取下面的错误。 任何想法,为什么我得到这个错误?vlc rtsp到mp4转码错误

下面是我使用的命令 -

cvlc -vvv rtsp://184.173.147.99:5555/mpeg2TransportStreamFromUDPSourceTest --sout '#transcode{vcodec=mp4v,acodec=none,vb=128,deinterlace}:file{dst=out.mp4}' 

这里的错误,我得到的

[0x7f72400011b8] avcodec encoder debug: libavcodec already initialized 
[mpeg4 @ 0x29ef5c0] timebase 333333/20000000 not supported by MPEG 4 standard, the maximum admitted value for the timebase denominator is 65535 
[0x7f72400011b8] avcodec encoder error: cannot open encoder 
[0x7f72400011b8] main encoder error: Streaming/Transcoding failed 
[0x7f72400011b8] main encoder error: VLC could not open the encoder. 
[0x7f72400011b8] main encoder debug: no encoder module matching "any" could be loaded 

回答

0

错误告诉你,什么是错的时基。

如果您在ffmpeg用户列表中阅读了此conversation,建议您定义一个正确的帧率。

所以我的第一个猜测是检查你的命令,并引入一个选项来定义想要的帧率,因为自动分析的帧率不适合。

下面是使用--timecode-fps你的命令的更新版本:

cvlc -vvv rtsp://184.173.147.99:5555/mpeg2TransportStreamFromUDPSourceTest --sout '#transcode{vcodec=mp4v,acodec=none,vb=128,deinterlace}:file{dst=out.mp4}' --timecode-fps=24/1 

下面是使用--sout-transcode-fps <float>你的命令的另一个更新版本:

cvlc -vvv rtsp://184.173.147.99:5555/mpeg2TransportStreamFromUDPSourceTest --sout '#transcode{vcodec=mp4v,fps=24/1,acodec=none,vb=128,deinterlace}:file{dst=out.mp4}' 

尝试不同的帧速率,例如:24/1,25/1,30000/1001,30/1,30.0,24.0,25.0

这里是您的命令的另一个更新版本与我的一些改编ide:

cvlc -vvv rtsp://184.173.147.99:5555/mpeg2TransportStreamFromUDPSourceTest --sout '#transcode{vcodec=mp4v,vb=128,fps=24/1,deinterlace,acodec=none}:std{mux=mp4,dst="out.mp4",access=file}' 

希望这会有所帮助。