☰
视界原理之3D视频(二):3D视频怎么拍和怎么存
2026/10/20 2:08:53 网站建设 项目流程

3D 视频怎么拍和怎么存

3D 视频的文件不是简单“多一张图”。它要保存同一时刻的左右视图,还要让播放器知道这两路图如何同步、如何排序、如何送到对应眼睛。


先看采集链路

这张图把 3D 视频从采集到显示串起来:采集阶段得到左右视图,编码/封装阶段保存排布或多视图关系,显示阶段再把左图只送左眼、右图只送右眼。


1. 3D 采集采的不是“两段视频”

3D 采集真正要拿到的是同一时刻、同一场景、几何可校正的两个视图。

数据含义为什么重要
left view左视角画面显示时送左眼
right view右视角画面显示时送右眼
capture timestamp左右帧采集时刻保证运动一致
camera intrinsics焦距、主点、畸变做左右画面校正
camera extrinsics两相机相对位置和旋转决定视差几何
baseline左右相机间距决定深度强度
exposure / WB曝光和白平衡保证两眼亮度和颜色一致

普通双机位“同时拍”不一定能做高质量 3D。没有硬件同步、没有标定、没有颜色匹配,后期会很痛苦。


2. 双相机为什么需要校正

两台相机不可能天然完全平行、同焦距、同畸变。3D 制作通常需要 rectification,把左右图校正到同一极线几何。

校正对象目的不处理的结果
畸变去掉镜头边缘弯曲左右眼边缘对不上
旋转对齐左右相机姿态出现垂直视差
焦距统一投影尺度一边大一边小
主点对齐图像中心深度分布偏移
颜色匹配亮度和白平衡两眼颜色不一致
时间对齐帧时刻运动物体错位

3D 里垂直视差比水平视差更危险,因为水平视差是深度来源,垂直视差基本只会增加融合负担。


3. 采集方式不止双相机

方式采集形态优点风险
双相机 rig两台相机同步拍左右眼质量上限高、基线可控同步、标定、体积复杂
单机双镜头一个设备集成双镜头便携、厂商可统一标定基线固定,创作自由度低
多相机阵列多视角同时采集可做多视点/光场数据量和拼接复杂
2D 转 3D单目估深度再生成另一眼可处理老片源遮挡边缘、透明物体难处理
引擎双相机3D 场景实时渲染左右眼几何和同步完全可控需要正确设置眼距和投影

2D 转 3D 的问题不在“能不能生成另一眼”,而在遮挡区域原本不存在信息。算法只能补,不能真正恢复被挡住的内容。


4. 文件怎么保存左右眼

4.1 Frame-compatible:拼成一个普通视频帧

这种方式兼容性好,很多播放器即使不懂 3D,也能把它当普通视频播出来。

排布保存方式单眼分辨率影响播放器要知道什么
SBS左右并排half-SBS 会损失水平分辨率左右半区和 eye order
TB / OU上下排列half-TB 会损失垂直分辨率上下半区和 eye order
checkerboard棋盘格交错依赖显示设备还原像素交错规则
line interleaved行交错垂直分辨率受影响奇偶行对应哪只眼
anaglyph颜色通道混合色彩损失明显眼镜颜色过滤规则

Frame-compatible 的核心缺点是:容器和 decoder 可能不知道它是 3D,renderer 必须靠 metadata、文件名规则或用户配置来识别。

4.2 Multi-view:编码层显式保存多视图

技术所属体系核心思想工程门槛
MVCH.264 扩展base view + dependent view蓝光 3D 常见,移动端支持有限
MV-HEVCHEVC 扩展多视图/多层编码新设备和平台才更常见
stereo pair tracks容器多轨左右眼各一条轨道同步和播放器支持要求高
spatial video平台封装约定HEVC 多视图 + 元数据依赖平台生态

多视图编码的优势是压缩效率和语义更清晰;问题是硬解、封装、编辑工具和播放器都要支持。


5. 编码时怎么处理左右眼

3D 编码不是把两路独立编码完事。更好的做法会利用左右眼相似性。

编码策略说明取舍
independent encode左右眼各自编码简单但码率高
frame-compatible encode拼成一帧后按 2D 编码兼容好但单眼分辨率受损
inter-view prediction右眼参考左眼压缩效率高但解码依赖更复杂
asymmetric quality一眼质量略低节省码率但可能引起视觉不适
shared GOP左右眼关键帧对齐seek 和同步更稳定

实际工程里,左右眼 GOP、时间戳、关键帧位置最好保持一致,否则 seek、丢帧和恢复会非常麻烦。


6. 文件里必须留下哪些信息

信息谁使用用途
stereo layoutrenderer判断 SBS / TB / 多轨 / 多视图
eye orderrenderer / display判断哪路是左眼
view countdemuxer / decoder多视图解码时知道视图数量
view dependencydecoderMVC / MV-HEVC 解析视图参考关系
baseline / disparity hintsrenderer / player舒适度策略、字幕深度参考
projectionrenderer立体 360 时还要知道球面投影
color metadatarenderer左右眼颜色一致性
timestampsdemuxer / decoder / renderer左右眼同步和 A/V sync

如果这些信息缺失,用户常看到的不是报错,而是“并排两张图”“深度反了”“头晕但不知道为什么”。


7. 解码时用什么,显示时用什么

信息解码阶段显示阶段
codec type选择普通解码器或多视图解码器通常不直接用
extradata初始化解码器,解析 profile / view info可能用于能力判断
packet DTS决定输入顺序间接影响队列
frame PTS输出帧时间左右眼同步显示
stereo layout普通 SBS/TB 解码器可能不用必须用于采样区域
eye order不参与解码必须用于左右眼分发
view dependency多视图解码必须用不直接用
display device不参与解码决定分眼输出格式

一句话总结

3D 视频文件的难点不是“多存一张图”,而是把左右视图的时间、几何、编码依赖和显示语义完整保存下来,并让每一层只消费自己该消费的信息。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询