小编Sar*_*ran的帖子

如何保持实时的MediaSource视频流同步?

我有一个服务器应用程序,它呈现30 FPS视频流,然后将其实时编码和复用到WebM字节流中.

在客户端,HTML5页面打开一个WebSocket到服务器,当接受连接时,它开始生成流.传递标头后,每个后续WebSocket框架都包含一个WebM SimpleBlock.关键帧每15帧发生一次,当发生这种情况时,将启动一个新的Cluster.

客户端还创建MediaSource,并在从WS接收帧时,将内容附加到其活动缓冲区.在<video>追加第一帧后立即开始播放.

一切都运作得相当好.我唯一的问题是网络抖动导致播放位置在一段时间后偏离实际时间.我目前的解决方案是挂钩updateend事件,检查video.currentTime传入集群上的时间码和时间码之间的差异,并手动更新它currentTime是否超出可接受的范围.不幸的是,这会导致播放中明显的暂停和跳跃,这是相当不愉快的.

该解决方案也有点奇怪:我确切地知道最新的关键帧在哪里,但我必须将其转换为整秒(根据W3C规范)才能将其传递到currentTime其中,浏览器可能必须绕过并找到最近的关键帧.

我的问题是:有没有办法告诉媒体元素总是寻找可用的最新关键帧,或者保持播放时间与系统时钟时间同步?

javascript html5 video-streaming html5-video media-source

14
推荐指数
1
解决办法
1168
查看次数

英特尔C++编译器编译递归decltype返回的速度非常慢

我正在为由任意数量的char标签参数化的表达式编写模板.

给定参数列表,工厂函数返回不同类型的表达式,具体取决于是否存在相同类型的两个参数或它们是否唯一.

一个具体的例子:假设这A是一个"可标记的"对象,其operator()重载生成一个?Expression<...>.我们a, b, ...将其声明为标签LabelName<'a'>, LabelName<'b'>, ....然后A(a,b,c,d)会产生一个UniqueExpression<'a','b','c','d'>,而反过来A(a,c,b,c)会产生一个RepeatedExpression<'a','c','b','c'>.

为了实现这一点,我不得不?Expressionauto和定义工厂函数decltype.此外,decltype必须级联到另一个,decltype直到元程序完成通过参数的递归并且最终决定返回类型.作为一个例子,我已经为工厂方法隔离了一个相当小的代码.

template <typename... T> struct TypeList { };
template <char C> struct LabelName { };

template <typename... T> class UniqueExpression
{
    // Contains implementation details in actual code
};

template <typename... T> class RepeatedExpression
{
    // Contains implementation details in actual code
}; …
Run Code Online (Sandbox Code Playgroud)

c++ icc decltype variadic-templates c++11

7
推荐指数
1
解决办法
1126
查看次数

Android上的'netstat'命令是否一般可用?

我目前使用以下代码获取有关活动网络套接字的一些信息.到目前为止,我已经确认这适用于Nexus 4(Jellybeans),Nexus 5(Jellybeans,KitKat和Lollipop)以及Sony Xperia设备(Jellybeans).

Process process = Runtime.getRuntime().exec("netstat -n");
process.getOutputStream().close();
BufferedReader reader = new BufferedReader(
        new InputStreamReader(process.getInputStream()));

String line;
while ((line = reader.readline()) != null) {
    // Parse line for required info
}

reader.close();
Run Code Online (Sandbox Code Playgroud)

我可以依靠上面的代码在大多数真实的Android设备上正常运行吗?

android netstat

1
推荐指数
1
解决办法
9717
查看次数