自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(51)
  • 收藏
  • 关注

原创 360SCVP库中WebRTC部分代码走读

github:https://github.com/OpenVisualCloud/Immersive-Video-Sample.gitCommit ID: 9ce286edf4d5976802bf488b4dd90a16ecc28c361. 概述360SCVP是一个通用的库,它为流和视窗提供了一些基本的功能。它主要应用在OMAF解决方案的服务器端(编码器和打包)和客户端(dashacess和播放器)。除此之外,这个库也被应用在基于WebRTC的低延迟解决方案中。因此,360SCVP是可扩展的,可以根

2022-03-22 21:20:07 3583

原创 全景视频传输开源项目汇总

文章目录1. Immersive-Video-Sample2. omaf3. omaf.js4. mxreality.js记录一下项目中遇到的开源全景视频传输项目。1. Immersive-Video-SampleGithub链接:https://github.com/OpenVisualCloud/Immersive-Video-Sample项目包含DASH和WebRTC两种传输方案,其中WebRTC方案基于OWT服务器实现。两种方案的服务器和客户端都需要单独编译。2. omafGithub

2022-03-16 15:32:39 8070

原创 Macos下跑通全景视频开源项目fraunhoferhhi/omaf.js

项目地址:https://github.com/fraunhoferhhi/omaf.js.git1. 安装nginxbrew install nginx2. 下载代码mkdir ~/omafserver && cd ~/omafservergit clone https://github.com/fraunhoferhhi/omaf.js.gitcurl https://datacloud.hhi.fraunhofer.de/s/yojnrKZqWmmWCwy/downloa

2022-03-14 16:50:28 1485

原创 《WebRTC实时通信》笔记整理汇总

前言1、本书脉络以高度抽象方式描述与WebRTC相关的完整开发周期;说明如何编写代码以查询、获得对本地多媒体资源(如音频和视频设备)的访问,并在HTML5中显示;将获得的媒体流与PeerConnection对象相关联(对等方的逻辑连接);讨论与建立正确的信令通道有关的各种选择;构建一个完整的WebRTC应用程序2、章节简介第一章-简介1、WebRTC架构浏览器内运行Web应用程序(自其它Web服务器下载);信令消息用于建立和终止通信,通过 HTTP 或

2022-03-13 10:32:14 2048

原创 QUIC协议详解

https://www.zhihu.com/zvideo/14473159327917301761. QUIC简介一种基于UDP的传输协议,用于提升网络加载速度,在弱网环境下表现较好。2. QUIC数据格式QUIC数据包分为Header和Data两部分。Frame Type:Stream、ACK、Padding、Blocked等Stream Frame:传输应用协议3. QUIC实现原理3.1 建立连接回顾:建立连接-HTTPSHTTPS的握手过程包含TCP握手和TLS握手

2022-02-17 22:21:45 3865

原创 信源编码技术-大作业-R−λ模型码率控制算法的原理与实现

视频的传输带宽通常有限,为了在有限的带宽下尽可能实现流媒体视频的低延迟高质量播放,需要对视频编码过程进行码率控制。本文主要介绍R−λ\boldsymbol{R}-\boldsymbol{\lambda}R−λ模型码率控制算法的原理和实现。首先指出码率控制算法设计的难点,引出核心框架,依次介绍比特分配模块和比特控制模块。然后介绍提案JVET-K0390[5]中对模型的补充与改进。最后分析参考软件HM16.24中码率控制部分的具体实现。1. 码率控制算法的基本原理码率控制问题属于率失真优化的范畴,由于量化参

2022-02-11 21:11:06 1756

原创 使用ffmpeg对yuv文件进行指定帧截图

#!/bin/sh################################################################################### DEFAULT VALUES##################################################################################FFMPEG_LOG="-loglevel error"RAW_FILE="BasketballDrive_1920x10

2022-01-24 22:15:47 2140

原创 解决error: unrecognized command-line option ‘-msse4.1‘

一、问题描述clion编译源码时报错 error: unrecognized command-line option ‘-msse4.1’xcode编译源码时报错 argument unused during compilation: ‘-msse4.1’二、环境HEVC源码 https://vcgit.hhi.fraunhofer.de/jvet/HM.gitMacBook Pro M1 Progcc@11clion/Xcode三、解决方法修改CMakeLists.t

2022-01-11 19:33:23 3527

原创 macos下基于xcode或者clion的hevc调试

https://vcgit.hhi.fraunhofer.de/jvet/HMhevc源码下载git clone https://vcgit.hhi.fraunhofer.de/jvet/HM.gitmkdir build(安装gcc@9)brew install gcc@9安装完之后查看下版本:gcc-9 -v正确显示版本号就是安装正确。生成一个xcode项目cmake .. -G "Xcode"或者使用可选的非默认编译器生成makefilecmake .

2021-12-12 23:16:28 634

原创 信源编码技术-作业5-编解码缓冲区关系推导

2021-12-12 15:49:45 193

原创 信源编码技术-作业4-H.264调试

1. 任务要求输出第一帧第二行第三个宏块的mode;输出第二帧第二行第三个宏块的mode和mv。2. jm_vc102.1 宏块类型mb_type 宏块类型的数值// Available MB modestypedef enum { PSKIP = 0, BSKIP_DIRECT = 0, P16x16 = 1, P16x8 = 2, P8x16 = 3, SMB8x8 = 4, S

2021-12-06 20:33:31 517

原创 信源编码技术-作业3-标量量化器/矢量量化器

1. 标量量化器1.1 unimg_enc-i ../images/sensin.img -o ../output/sensin_1bit.encBitsOriginal SizeQuantized sizeCompress Ratio164.0 KB8.02 KB12.53 %264.0 KB16.0 KB25.00 %464.0 KB32.0 KB50.00 %664.0 KB48.0 KB75.00 %1.2 uqimg_

2021-11-18 18:18:07 371

原创 【文献阅读】Loki: improving long tail performance of learning-based real-time video adaptation by ......

Zhang, H., A. Zhou, Y. Hu, C. Li, G. Wang, X. Zhang, H. Ma, L. Wu, A. Chen and C. Wu (2021). Loki: improving long tail performance of learning-based real-time video adaptation by fusing rule-based models. Proceedings of the 27th Annual International Confer

2021-10-31 16:05:19 838 3

原创 【文献阅读】OnRL:improving mobile video telephony via online reinforcement learning

[1] Zhang H, Zhou A, Lu J, et al. OnRL: improving mobile video telephony via online reinforcement learning[C]. Proceedings of the 26th Annual International Conference on Mobile Computing and Networking, 2020: 1-14.实时视频通话与点播VoD的不同VoD客户端通常保持几十秒的播放缓冲区,因此它们

2021-10-31 15:59:05 1097 2

原创 全景视频/VR的全流程处理解析-文献资料整理归纳

本文由以下资料整理汇总而成:5G高新技术—VR视频技术白皮书-2020基于视场的沉浸式视频质量建模及应用面向视窗依赖机制的全景视频传输优化研究_谢绍伟全景视频的投影转换及编码_于宁全景视频的质量评价和编码优化_陈思佳全景视频拼接关键技术研究_蓝先迪1. 完整流程2015 年 10 月,MPEG 发起了面向全景视频封装格式的标准化工作,称作全方向媒体格式(Omnidirectional MediA Format,OMAF),由来自世界各地高新企业、研究机构、高等院校的专家共同参与制定。

2021-10-31 15:41:56 4790

原创 【强化学习笔记-02】多任务深度强化学习

“A Survey of Multi-Task Deep Reinforcement Learning”-2020中文整理:https://zhuanlan.zhihu.com/p/265750570在中文整理的基础上对一些方法进行了补充。存在的问题:普通RL算法在同一环境中跨相关任务的许多场景中的适用性有限本文的目的是survey DRL领域中与多任务相关的研究挑战,并通过比较sota方法——DISTRAL (DIStill & TRAnsfer Learning), IMPALA(Im

2021-10-25 11:39:10 2624

原创 【强化学习笔记-01】多臂赌博机问题

参考资料:https://leovan.me/cn/2020/05/multi-armed-bandit/1. 问题描述一个赌徒,要去摇老虎机,走进赌场一看,一排老虎机,外表一模一样,但是每个老虎机吐钱的概率可不一样,他不知道每个老虎机吐钱的概率分布是什么,那么每次该选择哪个老虎机可以做到最大化收益呢?这就是多臂赌博机问题 (Multi-armed bandit problem, MAB)多 臂赌博机问题中,k个动作的每一个在被选择时都有一个期望或者平均收益,称之为这个动作的**“价值”。令 t 时刻

2021-10-21 18:39:15 257

原创 信源编码技术-作业2-哈夫曼编码

信源编码技术-作业2-哈夫曼编码1. 哈夫曼编码实验针对所给的Sena、Sensin和Omaha三幅图像的说明(参见项目readme):每张图像均为256x256的灰度图。SenaSensinOmaha*使用YUV Player打开源图像,下载地址:https://github.com/latelee/YUVPlayer针对所给程序命令参数的说明:1.1 利用自身码本对源图像进行编码在调试->调试属性->配置属性->调试->命令参数中

2021-10-12 20:15:55 709

原创 信源编码技术-作业1-清浊音分析

1. 清音(s)时域波形频谱图2. 浊音(z)时域波形频谱图3. 爆破音(p)时域波形频谱图4. 分析浊音在时域波形上呈现明显周期性,能量主要集中于低频。清音的时域波形不具有周期性,能量分布较为均匀。爆破音在时域上前半段能量较大,后半段能量小,同样不具有周期性。频谱图与清音类似,能量分布均匀。...

2021-10-03 22:01:44 128

原创 【文献阅读】基于probing rate与机器学习预测可用带宽—Khangura S K同系列两篇文献走读

[1] Khangura S K, Fidler M, Rosenhahn B. Machine learning for measurement-based bandwidth estimation[J]. Computer Communications, 2019, 144: 18-30.[2] Khangura S K, Akın S. Online available bandwidth estimation using multiclass supervised learning techniq

2021-08-08 18:34:52 557

原创 【Selenoid+Selenoid UI】WebRTC自动化测试02-macOS下的安装与配置->在Docker中启动浏览器

Selenoid官方文档:https://aerokube.com/selenoid/latest/Selenoid-ui官方文档:https://aerokube.com/selenoid-ui/latest/环境OS:macOS Catalina 10.15.6docker:docker desktop version 3.0.4使用Docker安装Selenoid+Selenoid UI1. Docker拉取Selenoid+Selenoid UI镜像 docker pull

2021-05-25 17:53:57 361

原创 【Selenium+Java+Chrome】WebRTC自动化测试01-向getUserMedia()提供虚拟音视频流

利用Chrome建立WebRTC会话时,需要通过getUserMedia()使用设备的摄像头和麦克风采集媒体流。然而,在实验中,我们往往需要使用指定视频序列测试WebRTC应用。因此,需要找到一种方法让getUserMedia()直接获取本地视频文件。1. 对视频序列进行预处理首先,需要将指定的媒体流(.mp4)转换为 .y4m 和 .wav 格式,这里使用FFmpeg进行转换。脚本文件如下,直接拖入终端即可。#!/bin/sh##################################

2021-05-25 17:53:37 679

原创 【WebRTC】使用getStats()获取WebRTC实时统计信息

一、getStats()功能返回丰富的WebRTC运行时的状态信息主要返回以下内容:发送端采集统计对应于媒体数据的产生,包括帧率、帧大小、媒体数据源的时钟频率和编码器名称等等发送端RTP统计对应于媒体数据的发送,包括发送数据包数,发送字节数和往返时间RTT等等接收端RTP统计对应于媒体数据的接收,包括接收数据包数、接收字节数、丢弃数据包数、丢失数据包数和网络抖动jitter接收端渲染统计对应于媒体数据的渲染,包括丢弃帧数、丢失帧数、渲染帧数和渲染延迟等等getStats

2021-05-25 17:48:42 5713 3

原创 利用RecordRTC录制WebRTC中传输的媒体流

一、RecordRTC简介参考https://blog.csdn.net/u014293306/article/details/81287026RecordRTC:是一个为现代浏览器开发的基于javascript的媒体记录库(支持WebRTC的 getUserMedia API ),它为不同的设备和浏览器进行了优化,带来了全客户端(无插件)的媒体记录方案。Recorder:通过RecordRTC的API生成的针对不同媒体类型的记录器,支持的媒体类型包括 MediaStreamRecorder (流媒

2021-04-05 11:13:23 1567 4

原创 在Docker中部署基于Node.js的WebRTC服务

参考https://nodejs.org/zh-cn/docs/guides/nodejs-docker-webapp/一、创建Node.js应用使用的Node.js应用文件夹结构如下图:其中,package.json应最先创建,用于描述应用程序及需要的依赖。配合着 package.json 请在该文件夹路径下运行 npm install。如果使用的 npm 是版本 5 或者之后的版本,这会自动生成一个 package-lock.json 文件,它将一起被拷贝进入你的 Docker 镜像中。二、

2021-04-04 18:02:54 530

原创 【Selenoid+Selenoid UI】macOS下的安装与配置->在Docker中启动浏览器

Selenoid官方文档:https://aerokube.com/selenoid/latest/Selenoid-ui官方文档:https://aerokube.com/selenoid-ui/latest/环境OS:macOS Catalina 10.15.6docker:docker desktop version 3.0.4使用Docker安装Selenoid+Selenoid UI1. Docker拉取Selenoid+Selenoid UI镜像 docker pull

2021-04-04 17:59:53 494

原创 Docker容器间的网络控制工具——Pumba使用

项目:https://github.com/alexei-led/pumba参考:https://cloud.tencent.com/developer/article/1616202一、Pumba介绍将应用部署至Docker中后,我们往往需要测试应用在特定网络状况下的性能。Pubma 能够完成网络模拟,模拟包括一系列的网络问题(延迟,丢包,使用不同的丢包模型,带宽限制等等)。针对网络模拟,Pumba使用的是Linux内核tc netem实现的。 如果目标container不支持tc的话,Pumba

2021-04-04 17:56:03 1510

原创 Docker的几种网络模式详解

Docker的几种网络模式详解Docker使用了Linux的Namespaces技术来进行资源隔离,如PID Namespace隔离进程,Mount Namespace隔离文件系统,Network Namespace隔离网络等。一个Network Namespace提供了一份独立的网络环境,包括网卡、路由、Iptable规则等都与其他的Network Namespace隔离。namespace概念namespace 是 Linux 内核用来隔离内核资源的方式。通过 namespace 可以让一些进程

2021-01-08 10:00:19 2430

原创 解决--use-file-for-fake-audio-capture=path/to/file.wav无效,没有声音的问题

解决–use-file-for-fake-audio-capture=path/to/file.wav无声音的问题1. 设备MacOS Catalina 10.15.6Chrome 87.0.4280.88(正式版本) (x86_64)2. 问题描述在使用--use-file-for-fake-audio-capture=path/to/file.wav参数向Chrome的getUserMedia()提供虚拟音频流时,发现本地视频流和音频流中,只有视频流可以正常播放,无法听到音频。3. 解决

2020-12-17 19:21:48 549

原创 利用getDisplayMedia()在WebRTC上实现屏幕捕获

1. 用法var promise = navigator.mediaDevices.getDisplayMedia(constraints);2. 浏览器兼容性3. demo<!-- getDisplayMedia_demo--><style> html, body { margin: 0!important; padding: 0!important; text-align: center;

2020-12-14 16:31:23 2972 1

原创 解决TypeError: fn.bind is not a function

一、问题描述二、socket.io 版本@2.0.3 "socket.io": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-2.0.3.tgz", "integrity": "sha1-Q1nwaiSTOua9CHeYr3jGgOrjReM=", "requires": { "debug": "~2.6.6",

2020-11-25 17:12:37 1191

原创 解决TypeError:ns.connected[id].rooms.indexOf is not a function

socket.io 1.5后,方法indexOf()被valueOf()取代

2020-10-23 19:58:28 93

原创 【Git笔记】基本操作、团队协作及SSH秘钥配置

Git笔记教程视频:https://www.bilibili.com/video/BV1Mf4y117f3?p=2一、Git概述Git是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或大或小的项目。官网:https://git-scm.com/1、架构文件转移过程:工作区->暂存区->master分支。文件移动至分支后形成正式的版本,暂存区内文件清空。工作区:开发者重点工作区域,在此创建项目。版本库(仓库):工作区中有一个隐藏目录**.git**,这个目录不属于工作区,

2020-10-11 16:18:57 167

原创 c/c++内存分配函数-总结

c/c++内存分配函数-总结一、c1、malloc原型:void *malloc( unsigned int num_bytes)分配长度为num_bytes个字节的内存块,返回值为无类型指针,该指针指向所分配内存块的起始位置,因此利用该无类型指针赋值给其他类型的指针的时候,需要进行强制类型转换。使用之后需要free(指针),释放内存块。分配内存的值为一些垃圾数值。因此,在使用malloc函数之后,我们一般要调用函数memset对内存进行初始化。int *pInt = (int*)

2020-08-06 22:15:36 1165

原创 数据压缩_实验八_H.264编码实验

H.264 编码实验一、解码得到YUV文件将自行选择两个264文件进行解码,得到相应的YUV文件。使用jm_vc8中的ldecod,修改项目中的路径和文件名,输入H.264文件,输出YUV文件,输出YUV文件可用YUVViewer播放。转换前:转换后:二、将YUV文件重新编码后分析1、将上述两个视频序列编码为.264文件固定码率,以不同的GOP长度及形状编码GOP=15,2B帧;GOP=12,2B帧,GOP=9,2B帧GOP=4,1B帧;GOP=12,无B帧;GOP=1,全I

2020-08-06 14:08:31 324

原创 vs下的输出目录/输出文件/工作目录-总结

vs下的输出目录/输出文件/工作目录-总结一、vs解决方案下各文件夹的包含关系一般来说,vs中的c++项目的解决方案总文件夹下包含解决方案配置文件sln和一个项目总文件夹和一个Debug文件夹以及一个Release文件夹(共四个文件夹,其中Debug和Release文件夹中存放最终生成的结果exe或dll,如果不使用Release生成,则不存在Release文件夹)。而解决方案和项目文件夹包含关系下包含C++源文件头文件、项目配置文件和一个Debug文件夹以及一个Release文件夹(注意,此处的D

2020-07-28 17:14:00 8026 1

原创 解决vs编译后运行提示“系统找不到指定的文件”的问题

解决vs编译后运行提示“系统找不到指定的文件”的问题一、问题描述解决方案编译成功后运行时发生下图报错二、解决定位到指定位置,发现路径中确实没有对应的idecod.exe。打开项目属性 -> 链接器 -> 常规发现输出文件路径与指向的输出目录不同。项目内的所有exe文件都存放于项目下的bin文件夹内,而调试时的工作目录指向对应的debug文件夹。因此修改调试 -> 调试属性 -> 常规内的输出目录重新编译后,程序成功运行。...

2020-07-27 10:16:39 74979 12

原创 数据压缩_任务七_随机信号的参数估计(AR模型)

AR模型的参数的估计一、AR模型随机信号 x(n) 由本身的若干次过去值 x(n-k) 和当前的激励值 w(n)线性组合产生:该模型的系统函数是:p 是系统阶数,系统函数中只有极点,无零点,也称为全极点模型,系统由于极点的原因,要考虑到系统的稳定性,因而要注意极点的分布位置,用 AR( p ) 来表示。二、AR模型参数和自相关函数的关系1、推导过程2、举例已知自回归信号模型 **AR(3)**为:式中 w( n ) 是具有方差 σ2 =1 的平稳白噪声,求a. 求自相关序列

2020-06-16 23:03:21 1044

原创 数据压缩_实验六_Mp2编码

Mp2音频编码实验一、实验原理1、Mp2编码(1)设计思想Mp2音频编码框图分为上下两条线。上半部分利用多相滤波器组,将输入的PCM样本变换到32个子带的频域信号。依据动态比特分配信息对32个分别进行量化。下半部分对输入的PCM样点做1024点FFT,利用心理声学模型,为上半部分的每个子带动态分配比特。时频分析的矛盾短时傅里叶变换是最常用的一种时频分析方法,它通过时间窗内的一段信号来表示某一时刻的信号特征。在短时傅里叶变换过程中,窗的长度决定频谱图的时间分辨率和频率分辨率,窗长越长,截取的信

2020-06-12 22:34:34 1309 1

原创 数据压缩_任务六_傅里叶仿真分析/正交镜像滤波器组分析及实现

文章目录傅里叶仿真分析/正交镜像滤波器组分析及实现一、傅里叶仿真分析1、分析2、实现代码二、正交镜像滤波器组分析及实现1、重建信号时存在的问题2、两通道正交镜像滤波器组理论3、已有方法4、完全重建QMFB的仿真实现(1)滤波器H~0~(z)和H~1~(z)的幅度响应(2)幅度响应关系误差(3)输入信号和输出信号比较(4)理想输出信号与重建输出信号的偏差5、实现代码傅里叶仿真分析/正交镜像滤波器组分析及实现一、傅里叶仿真分析1、分析由实验结果可知:时域移位会造成相位谱变化,幅度谱不变时域越窄,

2020-05-31 22:51:48 599

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除