本文尚处于草稿状态,提前公开仅供预览。
前言
两年前我就想写这个话题的文章,但一直拖延到现在,因为我在等待SkyBox VR Player支持3D MVC。我在想:如果3D播放器已经支持播放3D MVC格式,那么MVC至SBS转换就没有必要,毕竟转换耗时几乎与视频时长相当(采用2019年消费级数一数二的CPU/GPU/SSD)。
关于 H.264 MVC, Full-SBS, Half-SBS, Full-OU, Hasf-OU, Stereoscopic等关键词,请参考维基百科中相关条目。
背景
如果你有一个VR头显(例如Oculus Rift, Valve),那么为了看3D视频你可能会为3D片源而发愁,你能在网络上找到的大都是1080P Half-SBS格式。即使你有3D蓝光片源,也难以通过VR头显观看,因为3D蓝光视频采用H.264 MVC编码,而目前(时至2022年)没有VR视频播放器支持3D MVC编码。Half-SBS格式本身没毛病,问题是有时手头只有3D蓝光原盘,怎么把它转成Full-SBS(3840x1080)或Full-OU(1920x2160)以通过VR头显观看,一来是为更高的分辨率/清晰度,二来是为当他人没提供现成的Hasf-SBS时自己动手制作。
当初SkyBox VR Player开发团队有人在论坛中提到会考虑支持H.264 MVC,后来他改变了主意,论坛话题被重启。
以下是我从之前话题中摘录的内容:
看那些答复的走势,我认为MVC支持没戏了,至少在短期内。既然如此,这篇文章就有一定的存在价值,至少在短期内。
概述
本文介绍如何使用系列软硬件对3D MVC编码的蓝光视频进行Rip,Split,Encode,Merge,最终得到3D Full-SBS或Full-OU格式,以便在VR头显上观看。
系统要求
硬件:
- GPU:要求具备视频编码硬件加速能力(视频编码加速技术如Intel QSV,NVIDIA NVENC或AMD AMF)
- CPU:工作站级,要求散热良好(至少能稳定地承受连续半小时CPU满载负荷)
- SSD:要求可用存储空间至少为3倍于片源大小
- 【可选】BD Drive: 当片源载体是3D蓝光碟时需要用到BD驱动器,可以是USB转SATA的
操作系统:
- Windows 10 或以上
软件:
- MakeMKV - 抓取BD光盘、BD镜像,提取音视频轨道
- MKVToolNix - 分离音频频轨道,合并音视频轨道
- FRIM MVC Decoder - 3D MVC解码
- FFmpeg
操作
H.264 MVC转SBS的大致可分为4步:1). Rip 2). Split,3). Transcode 4). Merge 流程如下:
该转换流程是半自动的,其中梯形代表手动操作。手动操作可能是为了衔接步骤,也可能是为了纠错,或者调整参数。我考虑过使用流程编排框架将其整合,但还没找到合适的框架。
Rip
工具:MakeMKV
此处介绍如何Rip BD光盘或BD ISO镜像
Split
工具:MKVToolNix
此处介绍如何使用MKVToolNix从MKV文件中分离出所需的音频轨道、视频轨道、字幕轨道、封面图、章节
Transcode
工具:FRIM MVC Decoder, FFmpeg, SubEdit
此处介绍解码FRIM MVC Decoder解码MVC数据,并输出给FFmpeg重新压缩成H264 SBS;另外介绍如何使用OCR引擎将PGS图片字幕装成SRT文本字幕
Merge
工具:MKVToolNix
此处介绍如何将若干条多媒体轨道数据混合成一个MKV文件
附录
参考