我正在编写一个有点视频流媒体的应用程序。客户端正在使用udp socket接收视频流。现在我正在接收我要同时播放它的流。它与播放本地视频文件不同您的硬盘在这种情况下它可以像使用系统运行文件一样简单(“vlc文件名”)。但是这里涉及很多问题,因为接收可能会延迟,玩家将不得不等待传入的数据。我有了解如何使用vlc运行视频流。请详细说明使用vlc播放流的步骤。我正在用c ++实现我的应用程序。
编辑:有人可以给我一些关于VLC API的想法,它可用于将给定视频流式传输到特定目的地,并在另一端接收该流播放。
关心, Mawia
答案 0 :(得分:2)
你可以随时看看VideoLan's own homepage 除此之外,流媒体非常简单:
2号和3号听起来很奇怪,但值得思考:
如果您有宽带连接,您可以负担得起将大包送到客户端。注意:此处的数据包表示客户端需要完全解码下一部分视频的一致数据单元。如果您发送大数据包,比如说4秒的视频,则由于等待完整的数据单元,完全4秒,您可能会出现延迟,而小的0.5秒数据包会让您感到迟钝但仍然可识别且相对流畅的视频连接。
质量也一样。像素化和神器制作的视频很糟糕,口吃的视频/声音取景视频更糟糕。而是切换到较低质量/较高压缩设置。
如果你的问题纯粹是关于完成它的问题,那么第1点和第4点应该适合你。
您可能会问: “如果我想做实时直播视频?” 上述所有建议仍然适用,但所有建议都必须更加智能。首先要做的事情是:你不能通过糟糕的连接做实时。这是现实的事情。如果你的连接足够胖就可以达到几乎实时,只需抽出每个图像和一个小的声音样本,而无需进行太多处理或任何缓冲。可以从中获得良好的客户体验,但这样的连接极不可能。这里的诀窍通常是,传输视频质量略低于理论上允许的连接,并且仍然在那里摆动缓存和数据包重新排序......玩得开心。这很难。
答案 1 :(得分:0)
不幸的是,唯一的API vlc是命令行或命令行的等效命令行(您可以启动播放器实例,基本上将它们传递给命令行)。如果你需要多个实例或回调,你可以使用libvlc,但它仍然是非常不透明的......