Paper Overview
Link: https://ieeexplore.ieee.org/document/8424813
Level: IEEE Communications Surveys & Tutorials 2019
Immersive Video CreatedSat, 26 Feb 2022 11:26:06 +0800 - 最近几天一直在用WebXR的技术重构目前的基于分块的全景视频自适应码率播放客户端,下面简述一下过程。 首先结论是:分块播放+自适应码率+完全的沉浸式场景体验=Impossible(直接使用 WebXR 提供的 API) 分块播放 分块播放的本质是将一整块的全景视频从空间上划分成多个小块,各个小块在时间上与原视频的长度是相同的。 在实际播放的时候需要将各个小块按照原有的空间顺序排列好之后播放,为了避免各个分块播放进度不同的问题,播放时还需要经过统一的时间同步。 对应到 web 端的技术实现就是: 一个分块的视频<->一个<video>h5 元素<->一个<canvas>h5 元素 视频的播放过程就是各个分块对应的<canvas>元素不断重新渲染的过程 各个分块时间同步的实现需要一个基准视频进行对齐,大体上的原理如下: let baseVideo = null; let videos = []; initBaseVideo(); initVideos(); for (video in videos) { video.currentTime = baseVideo.currentTime; } 自适应码率 自适应码率的方案使用dashjs库实现,即对每个分块<video>元素的播放都用dashjs的方案控制: import { MediaPlayer } from "dashjs"; let videos = []; let dashs = []; let mpdUrls = []; initVideos(); initMpdUrls(); for (let i = 0; i < tileNum; i++) { let video = videos[i]; let dash = MediaPlayer().WebXR Created
Fri, 25 Feb 2022 11:04:23 +0800 - 远程启动jupyter notebool: jupyter notebook --no-browser --ip="<server-ip>" --port="<server-port>" 激活预先配置好的conda环境,这里假设环境名为keras-tf-2.1.0: conda activate keras-tf-2.1.0 安装ipykernel: pip3 install ipykernel --user 为ipykernel安装环境: python3 -m ipykernel install --user --name=keras-tf-2.1.0 打开notebook更改服务之后刷新即可:
LiveObj
LiveDeep
方法利用卷积层从视频内容中提取深层特征,不受动态背景的影响。然而在整个推流会话中需要更新一个带有大量权重的巨大的神经网络模型。同时因为没有历史视频和用户的轨迹的数据,模型需要在运行时从随机权重开始训练。而这会导致两个问题:- 模型需要花很长时间从一次预测错误中恢复;
- 在初始化的阶段预测率成功率很低;
为了解决这两个问题,提出预训练的模型来分析视频内容,对视频的语义进行层次化。
基于对内容的分析,进一步设计了一个轻量级用户模型,将用户偏好映射到不同的视频内容。
Immersive Video CreatedTue, 25 Jan 2022 11:59:24 +0800 LiveMotion
Motivation
基于视频中物体的运动模式来做对应的
FoV
预测。将用户的
FoV
轨迹与视频内容中运动物体的轨迹结合到一起考虑:Immersive Video CreatedSat, 22 Jan 2022 18:03:09 +0800 论文概况
Link:Popularity-Aware 360-Degree Video Streaming
Level:IEEE INFOCOM 2021
Keywords:Dynamic tiling, Cross-user division, Heuristic QoE optimization
Immersive Video CreatedTue, 18 Jan 2022 16:07:02 +0800