VB编写程序实现SRT视频外挂字幕
在DVDRip、MKV等720P高清视频中,srt、ssa、ass、idx、sub等外挂字幕非常流行,采用的显示技术毫不例外都是VSFilter(早期版本是VobSub)和AviSynth外挂字幕插件。显示的点阵汉字非常漂亮!现在流行的多媒体播放器,如KMPlayer、暴风影音等都采用了上述DirectVobSub技术。虽然DirectVobSub技术具有开放性强,支持众多语言编写的播放器,但经常有挂不上字幕的问题。于是,想到用VB来编写外挂字幕程序。那VB能否实现外挂字幕呢?答案是肯定的!对于idx、sub等图形字幕来说,VB无能为力;但对于文本字幕srt、ssa、ass,VB还是可以解决的。虽不能和DirectVobSub技术相比,但基本功能还是可以实现的。请看下面VB编写的srt字幕解析代码:
'********************************************************************************
'* 模块名称:Srttitle.bas
'* 调用srt字幕文件成功后:SRTFileAnalysis返回字幕个数(每一个srt字幕可能有多行显示文本)
'* 调用失败后SRTFileAnalysis返回一个长整型数0
'* 特别声明:转载请用IP地址,严禁原文转载!
'* 作者:Chenjl1031(东方之珠)
'********************************************************************************
Option Explicit
Public SRTtitle() As String 'srt字幕数组
'srt字幕提取
Public Function SRTFileAnalysis(ByVal SrtFileName As String) As Long
Dim LineCount As Long, FileNumber As Long, TimeLenth As Long, TimeNumber As Long
Dim Stitle As String, TimeLabel(1 To 2) As String, St As String, StC As String, sSrt() As String
Dim GotTime As Boolean
Dim sHour As Long, sMunite As Long, sSecond As Long, s1 As Long, s2 As Long, s3 As Long
On Error Resume Next
If Dir(SrtFileName) = "" Then SRTFileAnalysis = 0: Exit Function
'扫描srt字幕个数并定义字幕数组
FileNumber = FreeFile: LineCount = 1
&
相关文档:
郁闷,我使用的这个空间的IDC商竟然每隔一段时间就要检测绑定的域名是否再未提交备案列表中,如果是就删除,但是却不检测我是否提交了备案,按照他们说法删除域名一天后才能再次绑定,否则这一天内绑定了到下次检测就会再删除。这样我就不停的在后台看,看是否被删除,如果被删除,就再把域名绑定上去,;(很受伤!
于是用V ......
http://blog.csdn.net/cw198624/archive/2009/02/19/3911759.aspx
添加一个ListBox和一个按钮
Option Explicit
Private Declare Function CloseHandle Lib "kernel32" (ByVal Handle As Long) As Long
Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As L ......
植物大战僵尸这个小游戏做的还真不错,我看到了几个版本的植物大战僵尸修改器,如C++版,C#版,所以就改写了一个VB版本的,以下是源码
'界面中有两个按钮,分别是cmdSunUnlimited(caption为启用阳光无限),cmdMoneyUnlimited(caption为启用金钱无限),并且需要放两个Timer控件,名称为默认值timer1和timer2
'基地址直 ......
今天用编程语言Visual Basic(VB)写出自己的记事本!记得自从上次的一个VB打造简单计算器后就再也没有写一些小程序了!今天呢,写一个简单的记事本程序吧!
工具:一台计算机(电脑)。(配置不做什么要求,现在的机器应该没有配置很低的吧!只要能运行Visual Basic 6.0就行!)
&nbs ......