我有一个.mov
带有 QuickTime 文本轨道的容器,QuickTime 使用它来显示章节标记。在QuickTime 7 Pro 用户指南,有关如何执行此操作的描述位于使用 QuickTime Pro 进行编辑和创作 -> 更改电影属性 -> 为电影创建章节列表。我不会在这里列出所有 20 个步骤。
我想.mov
使用 ffmpeg 从容器中提取出该文本轨道。ffmpeg 报告这些流存在于我的容器中:
Chapter #0:0: start 0.000000, end 10.000000
Metadata:
title :
Chapter #0:1: start 10.000000, end 181.000000
Metadata:
title : Course Objectives
Chapter #0:2: start 181.000000, end 257.966667
Metadata:
title : References
Stream #0:0(eng): Video: h264 (Main) (avc1 / 0x31637661), yuv420p(tv), 1280x720 [SAR 1:1 DAR 16:9], 1489 kb/s, 29.89 fps, 30 tbr, 3k tbn, 60 tbc (default)
Metadata:
rotate : 0
creation_time : 2012-08-11T01:00:09.000000Z
handler_name : Apple Alias Data Handler
Side data:
displaymatrix: rotation of -0.00 degrees
Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, mono, fltp, 191 kb/s (default)
Metadata:
rotate : 0
creation_time : 2012-08-11T01:00:09.000000Z
handler_name : Apple Alias Data Handler
Stream #0:2(eng): Data: bin_data (text / 0x74786574), 0 kb/s
Metadata:
rotate : 0
creation_time : 2012-08-11T01:00:09.000000Z
handler_name : Apple Alias Data Handler
ffmpeg 是否认为每个章节标记都是其自己的流?我应该使用哪种选择器来map
选择文本轨道?我们有v
用于视频、s
用于字幕等的选择器,但没有用于章节的选择器。
理想情况下,我希望以 WebVTT 格式输出章节。我是否应该仅将输出文件名指定为out.webvtt
?
转储流 #0:2 会ffmpeg -i input_movie.mov -map 0:d:0 -c copy -f data text.bin
产生一些包含上述章节名称的二进制数据。但是,我似乎无法在该数据中找到时间戳。该数据的格式肯定与我用作输入的文本文件不同。这是我能想到的最佳解释(通过为 010 Editor 制作二进制模板):