求助:vlc的一些问题

      最近测试用vlc推送视频流,结果,一段很短的视频总是再循环播放。检查日志发现这样的错误,求教vlc的高手,万分感谢:

       ts demux error: MPEG-4 descriptor not found

       以及如下:

[mpeg4 @ 0x97775e0] Error at MB: 1002
[mpeg4 @ 0x97775e0] ac-tex damaged at 27 27
[mpeg4 @ 0x97775e0] Error at MB: 1269
[mpeg4 @ 0x97775e0] ac-tex damaged at 28 29
[mpeg4 @ 0x97775e0] Error at MB: 1362
[mpeg4 @ 0x97775e0] concealing 551 DC, 551 AC, 551 MV errors in P frame
[mpeg4 @ 0x97775e0] Error at MB: 551620kB time=00:00:04.01 bitrate=3308.7kbits/s dup=1 drop=0    
[mpeg4 @ 0x97775e0] concealing 310 DC, 310 AC, 310 MV errors in I frame
[mpeg4 @ 0x976dae0] ac-tex damaged at 43 24ime=00:00:08.60 bitrate=3270.9kbits/s dup=1 drop=0    
[mpeg4 @ 0x976dae0] Error at MB: 1147
[mpeg4 @ 0x976dae0] ac-tex damaged at 0 32
[mpeg4 @ 0x976dae0] Error at MB: 1472
[mpeg4 @ 0x976dae0] concealing 492 DC, 492 AC, 492 MV errors in P frame
[mpeg4 @ 0x97775e0] ac-tex damaged at 33 28
[mpeg4 @ 0x97775e0] Error at MB: 1321
[mpeg4 @ 0x97775e0] 2. marker bit missing in 3. esc
[mpeg4 @ 0x97775e0] Error at MB: 1434
[mpeg4 @ 0x97775e0] concealing 365 DC, 365 AC, 365 MV errors in P frame
[mpeg4 @ 0x976dae0] illegal dc vlc
[mpeg4 @ 0x976dae0] Error at MB: 3
[mpeg4 @ 0x976dae0] concealing 315 DC, 315 AC, 315 MV errors in I frame
[mpeg4 @ 0x97712e0] ac-tex damaged at 25 13ime=00:00:17.36 bitrate=4101.9kbits/s dup=1 drop=0    
[mpeg4 @ 0x97712e0] Error at MB: 623
[mpeg4 @ 0x97712e0] ac-tex damaged at 26 18
[mpeg4 @ 0x97712e0] Error at MB: 854
[mpeg4 @ 0x97712e0] concealing 361 DC, 361 AC, 361 MV errors in P frame
[mpeg4 @ 0x97712e0] cbpc damaged at 11 29 time=00:00:44.79 bitrate=4017.1kbits/s dup=12 drop=0    
[mpeg4 @ 0x97712e0] Error at MB: 1345
[mpeg4 @ 0x97712e0] Error at MB: 1572
[mpeg4 @ 0x97712e0] concealing 452 DC, 452 AC, 452 MV errors in P frame
[mpeg4 @ 0x9774460] ac-tex damaged at 42 1
[mpeg4 @ 0x9774460] Error at MB: 88
[mpeg4 @ 0x9774460] concealing 315 DC, 315 AC, 315 MV errors in P frame

还有:

[0xa0a5120] inhibit interface error: Failed to connect to the D-Bus session daemon: Unable to autolaunch a dbus-daemon without a $DISPLAY for X11
[0xa0a5120] main interface error: no suitable interface module
[0xb5500618] main interface error: no suitable interface module
[0xa00bf20] main libvlc error: interface "globalhotkeys,none" initialization failed
[0xa01e5e8] dummy interface: using the dummy interface module...
[0xa09b9d8] ts demux error: MPEG-4 descriptor not found
libdvbpsi error (misc PSI): Bad CRC_32 (0x03fb7183) !!


解决:

        发现是服务器的文件系统坏了。修复之后,将原来的文件(可能已经损坏)换过,然后再运行就没有这个问题了。



一、 编译安装VLC 使用vlc-1.0.5.tar.bz2 + live555-2010.01.tar.gz export MYDIR=/root/lf 将live555-2010.01.tar.gz和vlc-1.0.5.tar.bz2放置在$MYDIR下 cd $MYDIR (一) 编译liveMedia tar xvfz live555-2010.01.tar.gz cd live ./genMakefiles linux make (二) 安装libdvbpsi rpm -hiv libdvbpsi-0.1.7-1.el4.rf.i386.rpm rpm -hiv libdvbpsi-devel-0.1.7-1.el4.rf.i386.rpm 需要什么rpm可到http://apt.sw.be/redhat/el4/en/i386/rpmforge/RPMS/中下载 (三) 编译VLC 1. configure ./configure --prefix=/usr --enable-debug --disable-avcodec --disable-hal --disable-avformat --disable-swscale --disable-a52 --disable-x11 --disable-sdl --disable-fribidi --disable-dbus --disable-libgcrypt --disable-gnutls --disable-remoteosd --disable-skins2 --disable-qt4 --disable-libxml2 --disable-lua --disable-xcb --disable-alsa --disable-v4l2 --disable-qt --enable-run-as-root --enable-live555 --with-live555-tree=$MYDIR/live --disable-mad --disable-postproc --enable-dvbpsi --enable-x264 2. make 3. 出现错误error: syntax error before "vlc_spinlock_t": ../include/vlc_threads.h:240: error: syntax error before "vlc_spinlock_t" …… make[4]: *** [control/libvlc_la-vlm.lo] Error 1 make[4]: Leaving directory `/root/lf/vlc-1.0.5/src' make[3]: *** [all-recursive] Error 1 make[3]: Leaving directory `/root/lf/vlc-1.0.5/src' make[2]: *** [all] Error 2 make[2]: Leaving directory `/root/lf/vlc-1.0.5/src' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/root/lf/vlc-1.0.5' make: *** [all] Error 2 通过以下命令解决: sed -e 's/define\s*_POSIX_SPIN_LOCKS\s*/define _POSIX_SPIN_LOCKS -1 \/\/ wrong: /g' -i /usr/include/bits/posix_opt.h 4. 重试make出现error: `AFS_SUPER_MAGIC' undeclared: file.c:52:28: linux/magic.h: No such file or directory file.c: In function `IsRemote': file.c:141: error: `AFS_SUPER_MAGIC' undeclared (first use in this function) file.c:141: error: (Each undeclared identifier is reported only once file.c:141: error: for each function it appears in.) file.c:142: error: `CODA_SUPER_MAGIC' undeclared (first use in this function) file.c:143: error: `NCP_SUPER_MAGIC' undeclared (first use in this function) file.c:144: error: `NFS_SUPER_MAGIC' undeclared (first use in this function) file.c:145: error: `SMB_SUPER_MAGIC' undeclared (first use in this function) make[5]: *** [libaccess_file_plugin_la-file.lo] Error 1 make[5]: Leaving directory `/root/lf/vlc-1.0.5/modules/access' make[4]: *** [all-recursive] Error 1 make[4]: Leaving directory `/root/lf/vlc-1.0.5/modules/access' make[3]: *** [all] Error 2 make[3]: Leaving directory `/root/lf/vlc-1.0.5/modules/access' make[2]: *** [all-recursive] Error 1 make[2]: Leaving directory `/root/lf/vlc-1.0.5/modules' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/root/lf/vlc-1.0.5' make: *** [all] Error 2 将下面的magic.h文件复制到/usr/include/linux/目录下 5. make install 6. 检查 vlc -l | grep access_output access_output_udp UDP stream output access_output_http HTTP stream output access_output_file File stream output access_output_dummy Dummy stream output access_output_rtmp RTMP stream output vlc -l | grep dvbpsi mux_ts TS muxer (libdvbpsi) (四) 进行RTSP To TS转码:  不经视音频重编码的直接转码: vlc rtsp://172.17.0.219:8554/1 --sout '#standard{access=http, mux=ts, dst=172.17.0.100:1234}' 注:黑体部分为本机IP和端口,不能是127.0.0.1 vlc rtsp://172.17.0.219:8554/1 --sout '#duplicate{dst="std{access=udp, mux=ts, dst=172.17.1.116:1234}"}' vlc rtsp://172.17.0.219:8554/1 --sout '#duplicate{dst="std{access=http, mux=ts, dst=172.17.0.100:1234}"}' 二、 视音频重编码的VLC编译安装 (一) 需要编译安装ffmpeg ./configure --prefix=/usr --enable-libfaac --enable-libx264 --enable-pthreads --disable-ffserver --disable-ffplay --enable-gpl --enable-nonfree [root@localhost ffmpeg-0.6.7]# make common.mak:28: *** unterminated call to function `foreach': missing `)'. Stop. 出现上面错误需要更新Make版本,使用make-3.81.tar.gz ./configure --prefix=/usr;make;make install In file included from libavdevice/v4l.c:33: /usr/include/linux/videodev.h:56: error: syntax error before "ulong" /usr/include/linux/videodev.h:72: error: syntax error before '}' token 编辑/usr/include/linux/videodev.h第56行,把ulong改为 unsigned long (二) 编译VLC ./configure --prefix=/usr --enable-debug --enable-avcodec --disable-hal --disable-avformat --disable-swscale --disable-a52 --disable-x11 --disable-sdl --disable-fribidi --disable-dbus --disable-libgcrypt --disable-gnutls --disable-remoteosd --disable-skins2 --disable-qt4 --disable-libxml2 --disable-lua --disable-xcb --disable-alsa --disable-v4l2 --disable-qt --enable-run-as-root --enable-live555 --with-live555-tree=$MYDIR/live --disable-mad --disable-postproc --enable-dvbpsi --enable-x264 没有--enable-avcodec运行VLC转码会出现"cannot find video decoder"的错误。 (三) 进行RTSP To TS转码: vlc tcp://172.17.0.199:7799 --sout '#duplicate{dst="transcode{venc=x264{profile=baseline},vcodec=h264,acodec=mpga,vb=644,ab=56}:std{access=udp,mux=ts,dst=172.17.0.219:1234}"}' 使用VLC转时,不要激活转码 可正常工作的选项: :sout=#http{mux=ts,dst=:8080/1} :sout-keep :sout=#udp{mux=ts,dst=172.17.1.116:1234} :sout-keep http://www.videolan.org/doc/videolan-howto/en/ch09.html ffmpeg -i "rtsp://172.17.0.219:8554/1" -acodec libfaac -vcodec libx264 -vpre default -f mpegts -async 1 udp://127.0.0.1:3344 ./configure --prefix=/usr --enable-libfaac --enable-libx264 --enable-pthreads --disable-ffserver --disable-ffplay --enable-gpl --enable-nonfree 转码 ffmpeg -i "rtsp://172.17.0.219:8080/1" -acodec libfaac -vcodec libx264 -vpre default -f mpegts -async 1 udp://172.17.0.219:3344
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值