第二周工作报告
本周是项目进行的第二周
,
本周工作包括以下几个部分
:
1、之前在家对项目只是做了一个较为简单的了解,本周回到学校后下了一些相关的论文整理了一下思路,并跟导师进行沟通,理清了各个部分之间的关系。
和导师沟通的过程:
我:赵老师,这两天回学校下了点论文看看,整理了一下思路。大致了解到
openmax
的作用是能够更加方便地适应各种平台。在网上搜到libva是vaapi在linux中的一种实现,我想问一下libva和
libyami
的区别。
导师:
Libva
是
driver
的
API
,(虽然
video driver
是在
userspace
来实现的)
。Libyami
是
middleware
的
API
和实现:
libyami
使用
codecparser
分析码流的基本信息(
SPS/PPS
等等),然后组装成
driver
(
libva
)所需要的数据结构;并管理其他编解码逻辑,如参考帧的管理,一些上下文的
context
。
我
:
赵老师,您好,又要来打扰您了。上次问了下
VAAPI
和libyami的区别,感谢老师的回答。今天看到gstreamer-vaapi is a collection of GStreamer plugins and helper libraries that allow hardware accelerated video decoding, encoding and processing through VA-API. 这么一句话。我的理解是gstreamer-vaapi是基于VAAPI的一系列的组件,就是说gstreamer-vaapi可以实现硬件解码的功能。那么为什么不直接将gstreamer用openmax包装起来实现到andriod等平台的移植,而是重新建立libyami的库再用openmax封装?
导师:
Gst-omx
可以将
omx
的
plugin
包装成
gstreamer
的
plugin
;从上面这个事实,我们可以知道,从软件
stack
角度来看,
gstreamer
是在
openmax
上面的。
Gstreamer
的
plugin
包含了很多
omx
不需要的东西。如果你看
gstreamer-vaapi
的
code
,
libyami
相当于是他的
gst-libs
的子目录。进一步剔除了
gst/glib
的依赖,并使用
C++
进行了代码优化。
从以上跟导师的交流以及阅读相关的资料后,大致整理项目中涉及到的各个部分之间的关系。
对于
gstreamer
多媒体框架在硬件平台上面的适配,目前有两种方法,一种是直接将硬件平台的编解码能力直接编写为
gstreamer
插件,这也是前期选择的方法
;
另一种是使用
gst-openmax
抽象层,使得实现了
Openmax-IL
接口的硬件平台可以直接使用
gstreamer
框架(因为众多的
android
设备都实现了
openmax-IL
接口,所以
gst-openmax
可以使得支持了
android
设备的硬件平台方便地支持
gstreamer
框架);
本项目主要研究的是第二种方法,因此设计的
libyami
可以通过噢
penmax
进行封装从而适应于不同的平台。其主要的框架图如下
(
以
gstreammer
框架为例
)
:
2、由于本项目使用的是
linux
平台,因此本周回学校后安装了双系统,在
windows7
的基础上安装
ubuntu 14.04
。具体细节不再描述。
3、本项目是针对于硬件加速来说的,因此为了对硬件加速有一个更加直观的了解,本周进行了硬件加速方面的相关测试。采用的
vlc
播放器,对
1080P
的视频在软解和硬解下的
CPU
占用率进行了比较,电脑是双核四线程,所以显示
4
个
CPU
。可以明显看到硬解和软解得差别。
本周主要完成以上一些工作,下周准备对现有代码进行理解加深对项目的看法,并纠正一些可能存在的错误观点。
第二周工作报告本周是项目进行的第二周,本周工作包括以下几个部分:1、之前在家对项目只是做了一个较为简单的了解,本周回到学校后下了一些相关的论文整理了一下思路,并跟导师进行沟通,理清了各个部分之间的关系。和导师沟通的过程:我:赵老师,这两天回学校下了点论文看看,整理了一下思路。大致了解到openmax的作用是能够更加方便地适应各种平台。在网上搜到libva是vaapi在linux中的
一个全新的,完全重写的版本!
在此演示中,我们正在将实时视频从RTSP摄像机流式传输到您HTML5浏览器。
视频以封装在MP4中的H264格式流式传输。 在流到浏览器管道中不会进行任何代码转换。 不需要浏览器端Flash或纯JavaScript解码器。
使用W3 Media Source Extensions在浏览器中对视频进行解码和呈现,目前所有主流浏览器都很好地支持W3 Media Source Extensions。
仅支持H264-浏览器MSE尚不支持H246(
libVa
lkka也不支持)。
它是如何
工作
的?
大致像这样:
server-side nginx
ws_serve_new.py <-- websocket <---------------+
写博客在我看来,现目前主要功用是一段时间学习的总结和整理,同时也是自己一点点进步的最好凭证。这种输出方式,可以更好地驱动自己定期整理和总结所思所学,同时这些记录下来的点滴和进步也会让自己产生成就感,驱动自己更多学习和更大进步。
一直以来,喜欢将感兴趣和重要的东西放在有道笔记中,觉
什么是
Open
MAX
技术分析
Open
MAX
Open
MAX
是统一的抽象层,它允许访问否则需要供应商特定API的硬件。
Broadcom的MMAL(多媒体抽象层API)。
因此,
Open
MAX
允许使用此类硬件的软件的(某种)便携式实现。本文概述Raspberry Pi的硬件媒体功能以及如何使用
Open
MAX
访问它。Raspberry Pi Foundation提供的官方
Open
MAX
IL 1.1.2文档和IL组件文档构成了本文的基础。(Khronos宣布
Open
MAX
为无效标准。无论如何。
Open
MAX
提供
原文出处:直播社区
当前为了满足比较火热的移动 Web 端直播需求, 一系列的 HTML5 直播技术迅速的发展了起来.
常见的可用于 HTML5 的直播技术有 HLS, WebSocket 与 WebRTC. 今天我要向大家介绍一下 WebSocket 与 MSE 相关的内容, 并在最后通过一个实际的例子, 来展示其具体的用法.
WebSocket 协议介绍.