本文目录一览:
- 1、Srt字幕文件转Word文件格式
- 2、苹果手机可以打开srt文件
- 3、SRT文件用什么手机软件可打开?
- 4、SRT是什么文件?SRT文件怎么打开?SRT文件的编写格式是什么?
- 5、字幕文件的格式有哪些
Srt字幕文件转Word文件格式
从网上找来的,在此备份。以下是正文。
srt的格式是:
空行
序号
时间轴
字幕
首先将Srt文件用Word打开,或用文本工具打开Copy到Word中。
1.用替换法消去时间轴
00:^#^#:^#^#,^#^#^# -- 00:^#^#:^#^#,^#^#^#^p
2.改变成一条字幕一行的格式
^p^p替换成+
^p替换成=
+替换成^p
3.依次替换消去序号
^#^#^#=
^#^#=
^#=
这里^#指的就是一位数字
4.最后根据实际情况稍作调整。
苹果手机可以打开srt文件
一、关于srt文件
1.1打开方式
在srt文件右键选择“其他”-应用程序-文本编辑器.app,使用文本编辑器查看
1.2格式说明
复制代码
1
00:00:03,960 -- 00:00:09,260
《60秒经济学探奇》 第六节:理性选择理论
60 Second Adventures in Economics -- Number six: Rational Choice Theory
2
00:00:09,290 -- 00:00:13,950
运行一个经济体 最让人头疼的因素莫过于人
Of all the things to factor in when running an economy, the most troublesome is people.
3
00:00:13,950 -- 00:00:16,460
总体而言 人是理性的
Now by and large -- humans are a rational lot.
4
00:00:16,460 -- 00:00:20,230
价格上涨时 人们会供给更多 购买更少
When the price of something rises people will supply more of it -- and buy less of it.
5
00:00:20,230 -- 00:00:24,180
如果通胀上升 人们会要求更高工资
If they expect inflation to go up -- people will usually ask for higher wages --
6
00:00:24,180 -- 00:00:25,660
只是可能得不到
(though they might not get them)
7
00:00:25,660 -- 00:00:28,660
看到一个国家的利率或汇率下降时
And if they can see interest or exchange rates falling in one country,
复制代码
一般情况下的srt文件格式非常固定,上面的格式可以看成
数字
起始时间 -- 结束时间
字幕内容(可以多行)
空行
这种固定样式,每五行一个完整字幕行;
1.3解析方法
复制代码
#pragma mark -字幕
-(void)getVideoSubtitles
{
// NSString *pathStr = [[NSBundle mainBundle] pathForResource:@"VideoSubtitles1" ofType:@"srt"];
// NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL fileURLWithPath:pathStr]];
NSString *pathStr = [self.subTitlePath stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];-.srt文件格式
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:pathStr]];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:request completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) {-.srt文件格式
if (!error) {
NSString *string=[[NSMutableString alloc] initWithData:data encoding:NSUTF8StringEncoding];-.srt文件格式
//按行分割存放到数组中
NSArray *singlearray = [string componentsSeparatedByString:@"\n"];
NSMutableArray *begintimearray1 = [NSMutableArray array];
NSMutableArray *endtimearray1 = [NSMutableArray array];
NSMutableArray * subtitlesarray1 = [NSMutableArray array];
NSString *subStr = @"";
for (int i = 0; i singlearray.count; i++) {
if ((i % 5) == 0) {
}else if ((i % 5) == 1) {
//时间
NSString *timeStr = [singlearray objectAtIndex:i];
NSRange range2 = [timeStr rangeOfString:@" -- "];
if (range2.location != NSNotFound) {
NSString *beginstr = [timeStr substringToIndex:range2.location];
NSString *endstr = [timeStr substringFromIndex:range2.location+range2.length];-.srt文件格式
NSArray * arr = [beginstr componentsSeparatedByString:@":"];
NSArray * arr1 = [arr[2] componentsSeparatedByString:@","];
//将开始时间数组中的时间换化成秒为单位的
float teim=[arr[0] floatValue] * 60*60 + [arr[1] floatValue]*60 + [arr1[0] floatValue] + [arr1[1] floatValue]/1000;-.srt文件格式
//将float类型转化成NSNumber类型才能存入数组
NSNumber *beginnum = [NSNumber numberWithFloat:teim];
[begintimearray1 addObject:beginnum];
NSArray * array = [endstr componentsSeparatedByString:@":"];
NSArray * arr2 = [array[2] componentsSeparatedByString:@","];
//将结束时间数组中的时间换化成秒为单位的
float fl=[array[0] floatValue] * 60*60 + [array[1] floatValue]*60 + [arr2[0] floatValue] + [arr2[1] floatValue]/1000;-.srt文件格式
NSNumber *endnum = [NSNumber numberWithFloat:fl];
[endtimearray1 addObject:endnum];
}
}else
{
if ((i % 5) == 2)
{
//中文字幕
subStr = [NSString stringWithFormat:@"%@",[singlearray objectAtIndex:i]];
}else if ((i % 5) == 3)
{
//英文原文
subStr = [subStr stringByAppendingFormat:@"\n%@",[singlearray objectAtIndex:i]];-.srt文件格式
[subtitlesarray1 addObject:subStr];
subStr = @"";
}
}
}
dispatch_async(dispatch_get_main_queue(), ^{
_beginTimeSubArr = begintimearray1;
_endTimeSubArr = endtimearray1;
_subtitleArr = subtitlesarray1;
});
NSLog(@" 开始时间数组-=-=-==-=%@",begintimearray1);
NSLog(@" 结束时间数组-=-=-==-=%@",endtimearray1);
NSLog(@" 字幕数组-=-=-==-=%@",subtitlesarray1);
}else{
NSLog(@"error is %@",error.localizedDescription);
}
}];
[dataTask resume];
}
复制代码
这里需要拿到的是一段字幕的开始时间、结束时间以及字幕文字三个内容,分别存入三个数组中,时间的单位换算成秒。
1.4同步方法
复制代码
#pragma mark-更新方法
-(void)update{
// NSLog(@"---定时器方法---");
_labCurrentTime.text =[self TimeformatFromSeconds:self.player.currentPlaybackTime];
CGFloat current = self.player.currentPlaybackTime;
CGFloat total = self.player.duration;
CGFloat able = self.player.playableDuration;
[_slider setValue:current/total animated:YES];
[_progressView setProgress:able/total animated:YES];
// NSLog(@"打印总时长:%.2f",self.player.duration);
self.videoStudyPecent = (current/total)*100;
// NSLog(@"video--_beginTimeSubArr:%ld",_beginTimeSubArr.count);
//字幕同步
NSInteger currentSecond = self.player.currentPlaybackTime;
for (int i = 0; i_beginTimeSubArr.count ; i++) {
NSInteger beginarr = [_beginTimeSubArr[i] integerValue];
NSInteger endarr = [_endTimeSubArr[i]integerValue];
if (currentSecond beginarr currentSecond endarr) {
//同步字幕
_subtitleLab.text = _subtitleArr[i];
// NSLog(@" 字幕 %@",_subtitleArr[i]);
}
}
// NSLog(@"打印视频学习比例%ld",self.videoStudyPecent);
}
复制代码
在播放器的时间更新方法中,遍历字幕起始时间数组,根据当前时间是否处于一段字幕的开始以及结束时间的时间段内来更新字幕文字。如果字幕文字显示与声音有出入,可以试着调整解析时的字幕对应时间精度。
SRT文件用什么手机软件可打开?
SRT是视频字幕格式文件,也可以文本文档类型打开。
以flyme为例,打开SRT文件步骤如下所示:
1、在手机桌面,打开文件管理。
2、在文件管理中,选中需要打开的srt格式文件。
3、点击底部菜单栏中的更多。
4、选择打开方式选项。
5、选择文件预览。
6、打开后,效果如图所示。
SRT是什么文件?SRT文件怎么打开?SRT文件的编写格式是什么?
比较流行的文本字幕有srt、smi、ssa,因为是文本格式,所以就比较小了,一般大不过百来k。其中srt文本字幕最为流行,因为其制作规范简单,一句时间代码+一句字幕,使得制作修改就相当简单。配合上.style文件还能让srt自带一些字体上的特效等。几种文本字幕可以互相转换。文本字幕一般通过对图形字幕进行OCR或者手工制作生成,OCR英文字幕不难,毕竟英文识别难度小嘛,OCR中文难度就大一些,所用的软件个头也不小(SubOCR,30多MB)。-.srt文件格式
SRT文件属于视频字幕文件,用户可以使用记事本打开查看,如果需要编辑字幕,SRT文件打开后,可以看到主要包括:数字、时间、字幕文本以及空行组成,用户简单了解即可。
字幕文件的格式有哪些
有srt, ssa, ass, idx+sub等。
字幕文件格式srt, ssa, ass是文本格式,而idx+sub是图形格式,这四种都属于字幕格式文件。
文本格式字幕的扩展名通常是 ass、srt、smi、ssa 或 sub ,因为是文本格式,所以尺寸很小,通常不过百十来 KB。图形格式字幕由 idx 和 sub 文件组成,idx 相当于索引文件,里面包括了字幕出现的时间码和字幕显示的属性,sub 文件就是字幕数据本身。-.srt文件格式
扩展资料:
影视作品的对话字幕,一般出现在屏幕下方,而戏剧作品的字幕,则可能显示于舞台两旁或上方。
将节目的语音内容以字幕方式显示,并且,由于很多字词同音,只有通过字幕文字和音频结合来观看,才能更加清楚节目内容。
字幕也能用于翻译外语节目,让不理解该外语的观众,既能听见原作的声带,同时理解节目内容。
中国的电视节目不支持隐藏字幕,所以播出机构也无法去掉节目中的字幕,造成节目播出比较混乱,字幕之间互相遮掩,不该出现字幕时也胡乱出现的现象比较严重。
参考资料来源:百度百科-字幕