我接到了从mp4文件中检索字幕的任务
我想知道如何做到这一点,由mp4或c++,它依赖于java编码格式和
我想知道不同视频格式的基本概念和视频处理的基本概念。
发布于 2013-07-12 02:40:26
有几种字幕格式,SRT,STL(主要由Apple使用)等。并且ffmpeg支持很多http://ffmpeg.org/general.html#Subtitle-Formats。
ffmpeg可以使用cmd命令行提取它们,命令序列如下:
1)执行轨迹识别
ffmpeg -i yourFile2)提取字幕曲目:
ffmpeg -i yourFile -vn -an -codec:s:X.Y srt
sub.srt用X.Y表示您从cmd (1)中找到的磁道号指示器。
发布于 2019-07-02 21:52:44
对于包含多个字幕的m.m4v,这里的其他答案都不适用。但以下方法确实有效(对于.m4v和.mp4文件):
ffmpeg -i m.m4v -map 0:s:0 eng.srt
ffmpeg -i m.m4v -map 0:s:1 ita.srt
ffmpeg -i m.m4v -map 0:s:2 fre.srt在我的m.m4v中有3个字幕流,第一个是英语,第二个是意大利语,第三个是法语。它似乎是用于ffmpeg命令的顺序,而不是使用ffmpeg -i m.m4v获得的X.Y (input.stream)值
这是我的m.m4v给出的:
Stream #0:2(eng): Subtitle: mov_text (tx3g / 0x67337874), 0 kb/s (default)
Metadata:
handler_name : SubtitleHandler
Stream #0:3(ita): Subtitle: mov_text (tx3g / 0x67337874), 0 kb/s
Metadata:
handler_name : SubtitleHandler
Stream #0:4(fre): Subtitle: mov_text (tx3g / 0x67337874), 0 kb/s
Metadata:
handler_name : SubtitleHandler我在Macbook Pro 2015上使用Mac OS 10.4.5
顺便说一下,如果只有一个字幕曲目,那么你可以使用:
ffmpeg -i m.m4v -map 0:s:0 sub.srt发布于 2019-05-07 04:07:24
ffmpeg -i yourFile -map X:Y srt sub.srt
仅提取所需的磁道
https://stackoverflow.com/questions/17388253
复制相似问题