一直使用VLC对一个高清视频流进行转码,以前使用的是以下:
cvlc http://xxx.xxx.xxx.xxx/live –sout “#transcode{vcodec=h264,vb=2048,scale=0.5,acodec=mpga,ab=128,channels=2}:duplicate{dst=std{access=http,mux=ts,dst=:9000}}”
当时VLC 的版本是: vlc-0.9.9a-5.el5.rf.i386,最近我使用yum update(RPMforge的源)升级到vlc-0.9.9a-7.el5.rf版本后(当然ffmpeg、x264也升级了)却出现以下错误:
[00000510] avcodec encoder error: cannot open encoder
[00000435] stream_out_transcode stream out error: cannot find video
encoder (module:any fourcc:h264)
[00000435] stream_out_transcode stream out error: cannot create video
chain
[00000508] main packetizer error: cannot create packetizer output (mpgv)
通过增加-v 2打开debug后,出现更多一些的提示:
cvlc http://xxx.xxx.xxx.xxx/live -v 2 –sout “#transcode{vcodec=h264,vb=2048,scale=0.5,acodec=mpga,ab=128,channels=2}:duplicate{dst=std{access=http,mux=ts,dst=:9000}}”
提示如下:
[00000510] avcodec encoder warning: broken ffmpeg default settings detected
(libx264@0×8374270)
[00000510] avcodec encoder warning: use an encoding preset (e.g. -vpre medium)
(libx264@0×8374270)
[00000510] avcodec encoder warning: preset usage: -vpre <speed> -vpre <profile>
(libx264@0×8374270)
[00000510] avcodec encoder warning: speed presets are listed in x264 –help
(libx264@0×8374270)
[00000510] avcodec encoder warning: profile is optional; x264 defaults to high
(libx264@0×8374270)
[00000510] avcodec encoder error: cannot open encoder
[00000435] stream_out_transcode stream out error: cannot find video encoder (module:any fourcc:h264)
[00000435] stream_out_transcode stream out error: cannot create video chain
[00000508] main packetizer error: cannot create packetizer output (mpgv)
不知道到底是那个程序的问题,还是好几个程序没协调好,当前这几个程序的版本之间不兼容。