首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当AirPlay一个mp4文件时如何查看字幕vtt?

当AirPlay一个mp4文件时如何查看字幕vtt?
EN

Stack Overflow用户
提问于 2022-01-04 08:01:08
回答 1查看 525关注 0票数 1

目标是在运行AirPlay时以vtt格式查看TV格式的html字幕。

html代码:

代码语言:javascript
复制
<video preload="metadata" x-webkit-airplay="allow" src="a.mp4">
    <track kind="subtitles" default="" src="en.vtt" srclang="en">
    <track kind="subtitles" src="de.vtt" srclang="de">
    <track kind="subtitles" src="es.vtt" srclang="es">
    <track kind="subtitles" src="fr.vtt" srclang="fr">
</video>

问题是,当AirPlay在电视上播放视频和音频时,却没有显示字幕。

我尝试用ffmpeg将vtt/srt字幕包含到mp4元数据中,并在使用VLC时使用字幕,但在AirPlay这个文件中不起作用。

代码语言:javascript
复制
ffmpeg -i 8499.mp4 -i 8499.en.vtt -map 0:v -map 0:a -c copy -map 1 -c:s:0 mov_text -metadata:s:s:0 language=en 8499.en.mp4
ffmpeg -i 8499.mp4 -i 8499.en.srt -map 0:v -map 0:a -c copy -map 1 -c:s:0 srt -metadata:s:s:0 language=en 8499.en.mp4

还试图发送一个没有运气的.m3u8。你们谁知道一个简单的.m3u8的基本格式是如何在.mp4和.vtt的AirPlay中工作的?

AirPlay的标准字幕解决方案是什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-02-22 22:15:27

我并不感到惊讶的是,iOS不播放从<video>到Airplay接收器的VTT字幕。

iOS (可能也包括tvOS )只支持1种嵌入式字幕/字幕格式:MP4定时文本/ MPEG-4第17部分。有时它被称为“快速时间时间文本”。Safari还支持<video>的VTT (但不支持SRT),但这仅限于Safari。

您的ffmpeg示例之一很接近。如果您想要播放带有字幕/标题的MP4文件,您必须从一个SRT字幕文件开始作为输入。不是一个MP4定时文本文件(它远没有SRT那么常见)。使用mov_text将对其进行编码。

这是我在另一个答案中找到的一个关于这个问题的例子。

ffmpeg -i infile.mp4 -i infile.srt -c copy -c:s mov_text outfile.mp4

注意:如果使用-c命令,那么-c copy命令的顺序很重要。必须在它之后指定任何源流更改。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70575646

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档