使用vlc-2.21的rtsp点播功能

在学习流媒体播放的时候,是利用vlc-2.2.1做为调试工具的。由于需要对ts流进行rtsp方式点播,在进行rtsp的C/S两端配置时出现了种种问题,经过一番探索解决问题,发现使用命令行的方式比界面方式方便很多,配置的复杂度集中在服务端,客户端则很简单,界面或命令行方式皆可。

1、vlc -vvv --extraintf=logger test.ts --sout "#duplicate{dst=rtp{sdp=rtsp://:554/test.sdp}}" --loop

这是最初的配置,结果在客户端只有声音没有图像。

2、vlc -vvv --extraintf=logger test.mp4 --sout "#transcode{vcodec=h264,vb=0,scale=0,acodec=mpga,ab=128,channels=2,samplerate=44100}:duplicate{dst=rtp{sdp=rtsp://:554/test.sdp}}" --loop

这种方式是从网上查询到的,客户端可以正常播放。从配置看是存在一个转码过程的,试用的文件是h263编码格式,换成一个flv文件仍然只有声音出来。

3、vlc -vvv --extraintf=logger test.ts --sout "#duplicate{dst=rtp{mux=ts{pid-video=100,pid-pmt=1000},sdp=rtsp://:554/test.sdp}}" --loop

这个配置的mux部分是从网上http方式ts流推送配置找到的灵感,图像终于出来了。但是客户端存在比较严重的马赛克现象,原因不明。

4、vlc -vvv --extraintf=logger test.mp4 --sout "#transcode{vcodec=h264,vb=0,scale=0,acodec=mpga,ab=128,channels=2,samplerate=44100}:duplicate{dst=rtp{mux=ts{pid-video=100,pid-pmt=1000},sdp=rtsp://:554/test.sdp}}" --loop

这个实际是根据(3)对(2) 进行的修改。

总结:

点播涉及到sdp的payload的格式,考虑到源数据的多样性,在进行推送的时候目前看来如果不配置mux则按H264类型生成sdp。

(1)之所以无图像是因为由于没有指定mux信息,sdp中生成了错误的H264类型,而对于ts流应该是MP2T类型;

(2)由于对原数据转换成了H264,因此尽管未指定mux信息仍能正常显示;

(3)由于指定了mux信息,sdp生成了正确的MP2T类型;

(4)和(2)的区别就在于传输的是ts流而不是H264;

修正:

关于mux的理解存在偏差,通过wireshark抓包分析, (1)是将ts文件demux后发送其H264数据,因此sdp中信息是对的,(3)是将ts文件demux后再mux进行发送,由于此ts文件中的H264是设备的硬codec生成,基本可以确定不是H264编码格式就是ts封装格式引起(1)(3)的问题。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
VLC-Qt 是一个能够在 Qt 框架下使用 VLC 媒体播放器的库。在进行 VLC-Qt 的 mingw 编译之前,我们需要准备一些必要的工具和环境。 首先,我们需要安装 MinGW 环境。MinGW 是一个用于 Windows 的开发环境,提供了一套开发工具和库,并允许我们在 Windows 下进行类 Unix 的编译。 然后,我们需要下载并编译 VLC-Qt 的源代码。你可以从 GitHub 上的项目地址(https://github.com/vlc-qt/vlc-qt)下载源代码。解压文件后,进入源码目录,在命令行中执行以下命令来编译 VLC-Qt: qmake mingw32-make 这些命令将会使用 qmake 工具来生成相应的 makefile 文件,并使用 mingw32-make 工具进行编译。 完成编译后,你将会得到编译好的 VLC-Qt 的库文件和头文件。你可以将这些文件复制到你的项目目录中,并在项目中使用它们。 在使用 VLC-Qt 时,你需要在你的 Qt 项目中添加相应的库文件和头文件。你可以在项目的.pro 文件中添加以下内容: LIBS += -L/path/to/vlc-qt-library-folder -lvlc-qt INCLUDEPATH += /path/to/vlc-qt-include-folder 将 "/path/to/vlc-qt-library-folder" 替换为你编译得到的 VLC-Qt 库文件所在的文件夹路径,将 "/path/to/vlc-qt-include-folder" 替换为你编译得到的 VLC-Qt 头文件所在的文件夹路径。 通过以上步骤,你就可以在 mingw 编译环境下成功编译和使用 VLC-Qt 了。希望以上内容能对你有所帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值