使用VLC进行RTSP到TS的转码

from  http://blog.csdn.net/qiek/article/details/17285607

一、           编译安装VLC

 

使用vlc-1.0.5.tar.bz2 + live555-2010.01.tar.gz

exportMYDIR=/root/lf

live555-2010.01.tar.gzvlc-1.0.5.tar.bz2放置在$MYDIR

cd$MYDIR

(一)         编译liveMedia

tar xvfzlive555-2010.01.tar.gz

cd live

./genMakefileslinux

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}"}'

vlcrtsp://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@localhostffmpeg-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 fileincluded 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.h56行,把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转码:

 

vlctcp://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 1udp://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 -vpredefault -f mpegts -async 1 udp://172.17.0.219:3344

 

 

 

 

 


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值