如何给FLV文件加字幕
生活随笔
收集整理的這篇文章主要介紹了
如何给FLV文件加字幕
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
如何給FLV文件加字幕
關(guān)鍵字:FFMPEG AVS 字幕
???????? 本文只是收集工作中的一點(diǎn)經(jīng)驗(yàn)和積累,如果你能從本文中得到收獲,或者得到啟發(fā)。那將是我最開心的事情。
????????本文面向的讀者是對FFMPEG以及AVS有一定基礎(chǔ)的,對電腦有一定基礎(chǔ)的,否則你在讀的過程也許會(huì)感到比較困難。
在網(wǎng)上關(guān)于FFMPEG加字幕或者水印的文章不要太多,但是很多文章只是將各種命令給你羅列一堆,直到最后看到你茫然而不知所措,另外就是一些朋友在網(wǎng)上大說自己什么問題什么問題解決了啊,開心啊,什么的。用GOOGLE搜索一下就能搜索到,可是當(dāng)你滿懷希望的去打開的時(shí)候,卻發(fā)現(xiàn)你要的東西并不是他寫的東西。我就很郁悶:你倒是說說啊,你解決了,別人是替你開心,但是你也說一下,讓別人也開心一下啊,隨便BS一下。這種年頭搞這種全開源的東西的技術(shù)封鎖有花頭啊,能賺錢嗎?好了,不說了。
好了,不發(fā)牢騷,下面還是說一下正題吧:
首先說一下,我的工作環(huán)境:WINDOWS(而且是WINDWOS下在大多數(shù)的版本),FFMPEG,Avisynth2.5.6
解決的思路:通過AVS腳本實(shí)現(xiàn)對大都數(shù)文件的支持,通過VSFilter.dll插件實(shí)現(xiàn)對字幕文件的添加,我使用的SSA格式的純文本字幕,該格式的好處是:文件小,文字的式樣多,字幕出現(xiàn)的形式、位置等等都比較容易控制,在實(shí)際使用中,你可以根據(jù)你自己的需求來使用你的字幕格式。
VSFilter.dll支持的字幕格式有很多種:idx、srt、ssa、ass、sub等。
認(rèn)識(shí)字幕的格式,認(rèn)識(shí)字幕格式對想掛字幕或者說是加水印的來說應(yīng)該是很重要的一個(gè)過程,只有充分認(rèn)識(shí)了才寫出好的字幕文件,才能實(shí)現(xiàn)你心中的預(yù)期效果,我們這里只是以ssa文件為例進(jìn)行說明:
????????[Script Info]
; This is a Sub Station Alpha v4 script.
; For Sub Station Alpha info and downloads,
; go to http://www.eswat.demon.co.uk/
; or email kotus@eswat.demon.co.uk
;
; Note: This file was saved by Subresync.
;
ScriptType: v4.00
Collisions: Normal
PlayResX: 384
PlayResY: 288
Timer: 100.0000
????????[V4 Styles]
Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, TertiaryColour, BackColour, Bold, Italic, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, AlphaLevel, Encoding
Style: SytleCN,simhei,26,&Hffffff,&Hff0000,&Hff0000,&H000000,0,0,0,1,1,2,20,20,20,0,134
Style: mine,Arial,24,&Hffffff,&Hff0000,&Hff0000,&H000000,0,0,0,1,1,2,20,20,20,0,0
????????[Events]
Format: Marked, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Dialogue: Marked=0,0:00:00.00,0:00:9.99,SytleCN,,0000,0000,0000,,{/pos(50,35)}捷群科技(HTTP://www.jiequn.net)
上面的這一段是截取的一段SSA中的片段,你可以使用字幕的修改編輯軟件來進(jìn)行修改,常用的字幕的修改和編輯軟件網(wǎng)上有很你,你可以去搜索一下。本文主要講的是SSA的文件的格式:
我們看一下:[V4 Styles] 后面的那一段你可以任意的加上你所需要的文字的格式,這樣你可就可以寫出很PP的字幕了。Name對就于后面你在引用時(shí)的字體的名稱。Fontname,需要提醒大家注意的:SSA對中文的字體提供的不夠,所以你如果希望使用黑體,那就不能寫成黑體,然是要寫成simhei,其它字體的對應(yīng)關(guān)系如下:(黑體:simhei;宋體:simsun;仿宋:simfang;楷體:simkai;隸書:simli)雖然網(wǎng)上很多地方都沒有寫明,需要這樣設(shè)置字體,但是如果你不聽我的勸告,你將不能正確的設(shè)置中文字體。還有一點(diǎn)需要提醒你注意的是:“Encoding”,134表示簡體中文的編碼,繁體中文的編碼為136。其它的都是根據(jù)上面一項(xiàng)一項(xiàng)對應(yīng)下來的。MarginL ---字幕距左邊的距離---取值范圍0-PlayResX的數(shù)值;MarginR ---字幕距右邊的距離---取值范圍0-PlayResX的數(shù)值;VarginV ---字幕高度---取值范圍0-PlayResY的數(shù)值。PrimaryColour ---主體顏色---顏色格式為&HXXXXXX,十六進(jìn)制,X取值為0-f;SecondaryColour ---次要顏色---格式同上,卡拉OK中使用,即變色前的顏,變色后顯示主體顏色;TertiaryColour ---邊框顏色---格式同上;BackColour ---陰影顏色---格式同上
????????3.[Events]
Format: Marked, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
從這里開始就是字幕部分了,以“Dialogue: Marked=0,0:00:00.00,0:00:9.99,SytleCN,,0000,0000,0000,,{/pos(50,35)}捷群科技(HTTP://www.jiequn.net)”這里是將[v4 Styles]部分中已定義的字體提供給字幕,并能對字體的各屬性重新定義;通過特定的SSA代碼實(shí)現(xiàn)特效.
Format: Marked, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Marked---標(biāo)記---一般都設(shè)為0
Start ---字幕開始時(shí)間---格式0:00:00.00最小單位0.01秒
End ---字幕結(jié)束時(shí)間---格式同上
Style ---字體名稱---引用的是[v4 Styles]部分中的Name項(xiàng)
Name ---名字---注意這個(gè)Name和[v4 Styles]部分中的Name完全不同,相當(dāng)于注釋,一般省略,省略后只留一逗號.
MarginL---是對[v4 Styles]部分MarginL值的重新設(shè)定,0000表示采用原值;若不為零,則代替原值(此時(shí)原值不再起作用)
MarginR---是對[v4 Styles]部分MarginR值的重新設(shè)定,用法同上
MarginV---是對[v4 Styles]部分MarginV值的重新設(shè)定,用法同上
Effect---這里是SSA為編輯人員方便使用動(dòng)態(tài)效果而自定義的代碼,有Scroll up,Scroll down,Banner和Karaoke四種形式.為集中學(xué)習(xí)這里就不作介紹將其放到SSA代碼部分說明.
Text---字幕區(qū)---在這里可以添加代碼改變字體屬性,實(shí)現(xiàn)多種特效
????????好了,累死了,休息一會(huì)兒,相信在看完上面的文章后你應(yīng)該對SSA的字幕有一定的了解了吧,如果這一步搞定的話那下面的步驟就簡單多了。。
????????下一步:如果將字幕加到文件中去?
當(dāng)然得是AVS了。打開記事本編寫AVS腳本:
LoadPlugin("VSFilter.dll")
DirectShowSource("待轉(zhuǎn)換的文件路徑及文件名", fps=15, convertfps=true)
TextSub("SSA文件")
Levels(0,1.2,255,0,255)
看了上在的代碼:第一句就是LoadPlugin("VSFilter.dll"),那就別急了,先到網(wǎng)上去下載VSFilter.dll,當(dāng)然你也可以到本網(wǎng)上下載。
下載后將文件復(fù)制到你的SYSTEM32目錄下面。
執(zhí)行命令“regsvr32 VSFilter.dll”完成該DLL文件的注冊。
好了,到了這里你可以正確引用VSFilter.dll了。
????????下面的事件就是寫一句FFMPEG命令(舉個(gè)最簡單的例子:ffmpeg -i XXX.avs -y test.flv)去執(zhí)行,就可以得到加字幕后的FLV文件了。
????????好了,朋友們?nèi)ハ硎蹵VS給我們帶來的方便吧。由于本文才疏學(xué)淺,肯定有說的不到的地方,還請更正(直接在下面留言就可以了)。我將在后面寫一些關(guān)于AVS加載別的格式或者水印的文章。
本文如果需要轉(zhuǎn)載請注明出處:捷群科技(HTTP://www.jiequn.net)
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)
關(guān)鍵字:FFMPEG AVS 字幕
???????? 本文只是收集工作中的一點(diǎn)經(jīng)驗(yàn)和積累,如果你能從本文中得到收獲,或者得到啟發(fā)。那將是我最開心的事情。
????????本文面向的讀者是對FFMPEG以及AVS有一定基礎(chǔ)的,對電腦有一定基礎(chǔ)的,否則你在讀的過程也許會(huì)感到比較困難。
在網(wǎng)上關(guān)于FFMPEG加字幕或者水印的文章不要太多,但是很多文章只是將各種命令給你羅列一堆,直到最后看到你茫然而不知所措,另外就是一些朋友在網(wǎng)上大說自己什么問題什么問題解決了啊,開心啊,什么的。用GOOGLE搜索一下就能搜索到,可是當(dāng)你滿懷希望的去打開的時(shí)候,卻發(fā)現(xiàn)你要的東西并不是他寫的東西。我就很郁悶:你倒是說說啊,你解決了,別人是替你開心,但是你也說一下,讓別人也開心一下啊,隨便BS一下。這種年頭搞這種全開源的東西的技術(shù)封鎖有花頭啊,能賺錢嗎?好了,不說了。
好了,不發(fā)牢騷,下面還是說一下正題吧:
首先說一下,我的工作環(huán)境:WINDOWS(而且是WINDWOS下在大多數(shù)的版本),FFMPEG,Avisynth2.5.6
解決的思路:通過AVS腳本實(shí)現(xiàn)對大都數(shù)文件的支持,通過VSFilter.dll插件實(shí)現(xiàn)對字幕文件的添加,我使用的SSA格式的純文本字幕,該格式的好處是:文件小,文字的式樣多,字幕出現(xiàn)的形式、位置等等都比較容易控制,在實(shí)際使用中,你可以根據(jù)你自己的需求來使用你的字幕格式。
VSFilter.dll支持的字幕格式有很多種:idx、srt、ssa、ass、sub等。
認(rèn)識(shí)字幕的格式,認(rèn)識(shí)字幕格式對想掛字幕或者說是加水印的來說應(yīng)該是很重要的一個(gè)過程,只有充分認(rèn)識(shí)了才寫出好的字幕文件,才能實(shí)現(xiàn)你心中的預(yù)期效果,我們這里只是以ssa文件為例進(jìn)行說明:
????????[Script Info]
; This is a Sub Station Alpha v4 script.
; For Sub Station Alpha info and downloads,
; go to http://www.eswat.demon.co.uk/
; or email kotus@eswat.demon.co.uk
;
; Note: This file was saved by Subresync.
;
ScriptType: v4.00
Collisions: Normal
PlayResX: 384
PlayResY: 288
Timer: 100.0000
????????[V4 Styles]
Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, TertiaryColour, BackColour, Bold, Italic, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, AlphaLevel, Encoding
Style: SytleCN,simhei,26,&Hffffff,&Hff0000,&Hff0000,&H000000,0,0,0,1,1,2,20,20,20,0,134
Style: mine,Arial,24,&Hffffff,&Hff0000,&Hff0000,&H000000,0,0,0,1,1,2,20,20,20,0,0
????????[Events]
Format: Marked, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Dialogue: Marked=0,0:00:00.00,0:00:9.99,SytleCN,,0000,0000,0000,,{/pos(50,35)}捷群科技(HTTP://www.jiequn.net)
上面的這一段是截取的一段SSA中的片段,你可以使用字幕的修改編輯軟件來進(jìn)行修改,常用的字幕的修改和編輯軟件網(wǎng)上有很你,你可以去搜索一下。本文主要講的是SSA的文件的格式:
我們看一下:[V4 Styles] 后面的那一段你可以任意的加上你所需要的文字的格式,這樣你可就可以寫出很PP的字幕了。Name對就于后面你在引用時(shí)的字體的名稱。Fontname,需要提醒大家注意的:SSA對中文的字體提供的不夠,所以你如果希望使用黑體,那就不能寫成黑體,然是要寫成simhei,其它字體的對應(yīng)關(guān)系如下:(黑體:simhei;宋體:simsun;仿宋:simfang;楷體:simkai;隸書:simli)雖然網(wǎng)上很多地方都沒有寫明,需要這樣設(shè)置字體,但是如果你不聽我的勸告,你將不能正確的設(shè)置中文字體。還有一點(diǎn)需要提醒你注意的是:“Encoding”,134表示簡體中文的編碼,繁體中文的編碼為136。其它的都是根據(jù)上面一項(xiàng)一項(xiàng)對應(yīng)下來的。MarginL ---字幕距左邊的距離---取值范圍0-PlayResX的數(shù)值;MarginR ---字幕距右邊的距離---取值范圍0-PlayResX的數(shù)值;VarginV ---字幕高度---取值范圍0-PlayResY的數(shù)值。PrimaryColour ---主體顏色---顏色格式為&HXXXXXX,十六進(jìn)制,X取值為0-f;SecondaryColour ---次要顏色---格式同上,卡拉OK中使用,即變色前的顏,變色后顯示主體顏色;TertiaryColour ---邊框顏色---格式同上;BackColour ---陰影顏色---格式同上
????????3.[Events]
Format: Marked, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
從這里開始就是字幕部分了,以“Dialogue: Marked=0,0:00:00.00,0:00:9.99,SytleCN,,0000,0000,0000,,{/pos(50,35)}捷群科技(HTTP://www.jiequn.net)”這里是將[v4 Styles]部分中已定義的字體提供給字幕,并能對字體的各屬性重新定義;通過特定的SSA代碼實(shí)現(xiàn)特效.
Format: Marked, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Marked---標(biāo)記---一般都設(shè)為0
Start ---字幕開始時(shí)間---格式0:00:00.00最小單位0.01秒
End ---字幕結(jié)束時(shí)間---格式同上
Style ---字體名稱---引用的是[v4 Styles]部分中的Name項(xiàng)
Name ---名字---注意這個(gè)Name和[v4 Styles]部分中的Name完全不同,相當(dāng)于注釋,一般省略,省略后只留一逗號.
MarginL---是對[v4 Styles]部分MarginL值的重新設(shè)定,0000表示采用原值;若不為零,則代替原值(此時(shí)原值不再起作用)
MarginR---是對[v4 Styles]部分MarginR值的重新設(shè)定,用法同上
MarginV---是對[v4 Styles]部分MarginV值的重新設(shè)定,用法同上
Effect---這里是SSA為編輯人員方便使用動(dòng)態(tài)效果而自定義的代碼,有Scroll up,Scroll down,Banner和Karaoke四種形式.為集中學(xué)習(xí)這里就不作介紹將其放到SSA代碼部分說明.
Text---字幕區(qū)---在這里可以添加代碼改變字體屬性,實(shí)現(xiàn)多種特效
????????好了,累死了,休息一會(huì)兒,相信在看完上面的文章后你應(yīng)該對SSA的字幕有一定的了解了吧,如果這一步搞定的話那下面的步驟就簡單多了。。
????????下一步:如果將字幕加到文件中去?
當(dāng)然得是AVS了。打開記事本編寫AVS腳本:
LoadPlugin("VSFilter.dll")
DirectShowSource("待轉(zhuǎn)換的文件路徑及文件名", fps=15, convertfps=true)
TextSub("SSA文件")
Levels(0,1.2,255,0,255)
看了上在的代碼:第一句就是LoadPlugin("VSFilter.dll"),那就別急了,先到網(wǎng)上去下載VSFilter.dll,當(dāng)然你也可以到本網(wǎng)上下載。
下載后將文件復(fù)制到你的SYSTEM32目錄下面。
執(zhí)行命令“regsvr32 VSFilter.dll”完成該DLL文件的注冊。
好了,到了這里你可以正確引用VSFilter.dll了。
????????下面的事件就是寫一句FFMPEG命令(舉個(gè)最簡單的例子:ffmpeg -i XXX.avs -y test.flv)去執(zhí)行,就可以得到加字幕后的FLV文件了。
????????好了,朋友們?nèi)ハ硎蹵VS給我們帶來的方便吧。由于本文才疏學(xué)淺,肯定有說的不到的地方,還請更正(直接在下面留言就可以了)。我將在后面寫一些關(guān)于AVS加載別的格式或者水印的文章。
本文如果需要轉(zhuǎn)載請注明出處:捷群科技(HTTP://www.jiequn.net)
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)
總結(jié)
以上是生活随笔為你收集整理的如何给FLV文件加字幕的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: AVI文件规范
- 下一篇: C/C++串口通信原理及读写与操作