资源说明:一、 编译安装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
本源码包内暂不包含可直接显示的源代码文件,请下载源码包。