【发布时间】:2013-01-18 02:28:07
【问题描述】:
我一直在对机器之间的编码/解码和流式视频进行一些研究,我觉得我已经很好地掌握了从文件到流的管道。我可以打开容器,解码和抓取单个帧和音频块,我想在网络上移动这些帧就像简单地发送字节数据一样简单(尽管原始且低效)。我不明白的是它的实际播放方式。简单地将帧写入某个图像框并将音频数据放到声卡缓冲区中并不能很好地工作。谁能向我解释一下 vlc 播放器或 windows 媒体播放器等程序中发生的情况,这些程序允许他们将所有这些帧数据发送到屏幕而不破坏 cpu 和内存?只是一般的想法或一些高级文档会很棒。我什至不知道从哪里开始......
谢谢!
【问题讨论】:
-
VLC 是开源的不是吗?你可以检查一下:)
-
我只记得我们是如何在袖珍电脑上使用 mpeg 库做到的。就像你描述的那样。我们使用 2D 库,打开一个表面,将帧位复制到表面并将其翻转到屏幕上。现在你当然可以提前缓冲几帧,或者做一些简洁的事情,比如在帧之间进行插值。但我不认为在这一点上有更多的魔力,而不仅仅是将像素带到屏幕上。
-
画图放音频数据,音视频时间同步。
标签: c# video video-streaming