如何給FLV文件加字幕

如何給FLV文件加字幕

關鍵字:FFMPEG AVS 字幕
????????  本文只是收集工作中的一點經驗和積累,如果你能從本文中得到收獲,或者得到啟發。那將是我最開心的事情。
????????本文面向的讀者是對FFMPEG以及AVS有一定基礎的,對電腦有一定基礎的,否則你在讀的過程也許會感到比較困難。
  在網上關于FFMPEG加字幕或者水印的文章不要太多,但是很多文章只是將各種命令給你羅列一堆,直到最后看到你茫然而不知所措,另外就是一些朋友在網上大說自己什么問題什么問題解決了啊,開心啊,什么的。用GOOGLE搜索一下就能搜索到,可是當你滿懷希望的去打開的時候,卻發現你要的東西并不是他寫的東西。我就很郁悶:你倒是說說啊,你解決了,別人是替你開心,但是你也說一下,讓別人也開心一下啊,隨便BS一下。這種年頭搞這種全開源的東西的技術封鎖有花頭啊,能賺錢嗎?好了,不說了。
  好了,不發牢騷,下面還是說一下正題吧:
  首先說一下,我的工作環境:WINDOWS(而且是WINDWOS下在大多數的版本),FFMPEG,Avisynth2.5.6
  解決的思路:通過AVS腳本實現對大都數文件的支持,通過VSFilter.dll插件實現對字幕文件的添加,我使用的SSA格式的純文本字幕,該格式的好處是:文件小,文字的式樣多,字幕出現的形式、位置等等都比較容易控制,在實際使用中,你可以根據你自己的需求來使用你的字幕格式。
VSFilter.dll支持的字幕格式有很多種:idx、srt、ssa、ass、sub等。
  認識字幕的格式,認識字幕格式對想掛字幕或者說是加水印的來說應該是很重要的一個過程,只有充分認識了才寫出好的字幕文件,才能實現你心中的預期效果,我們這里只是以ssa文件為例進行說明:
????????[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中的片段,你可以使用字幕的修改編輯軟件來進行修改,常用的字幕的修改和編輯軟件網上有很你,你可以去搜索一下。本文主要講的是SSA的文件的格式:
我們看一下:[V4 Styles] 后面的那一段你可以任意的加上你所需要的文字的格式,這樣你可就可以寫出很PP的字幕了。Name對就于后面你在引用時的字體的名稱。Fontname,需要提醒大家注意的:SSA對中文的字體提供的不夠,所以你如果希望使用黑體,那就不能寫成黑體,然是要寫成simhei,其它字體的對應關系如下:(黑體:simhei;宋體:simsun;仿宋:simfang;楷體:simkai;隸書:simli)雖然網上很多地方都沒有寫明,需要這樣設置字體,但是如果你不聽我的勸告,你將不能正確的設置中文字體。還有一點需要提醒你注意的是:“Encoding”,134表示簡體中文的編碼,繁體中文的編碼為136。其它的都是根據上面一項一項對應下來的。MarginL ---字幕距左邊的距離---取值范圍0-PlayResX的數值;MarginR ---字幕距右邊的距離---取值范圍0-PlayResX的數值;VarginV ---字幕高度---取值范圍0-PlayResY的數值。PrimaryColour ---主體顏色---顏色格式為&HXXXXXX,十六進制,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代碼實現特效.
Format: Marked, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Marked---標記---一般都設為0
Start ---字幕開始時間---格式0:00:00.00最小單位0.01秒
End ---字幕結束時間---格式同上
Style ---字體名稱---引用的是[v4 Styles]部分中的Name項
Name ---名字---注意這個Name和[v4 Styles]部分中的Name完全不同,相當于注釋,一般省略,省略后只留一逗號.
MarginL---是對[v4 Styles]部分MarginL值的重新設定,0000表示采用原值;若不為零,則代替原值(此時原值不再起作用)
MarginR---是對[v4 Styles]部分MarginR值的重新設定,用法同上
MarginV---是對[v4 Styles]部分MarginV值的重新設定,用法同上
Effect---這里是SSA為編輯人員方便使用動態效果而自定義的代碼,有Scroll up,Scroll down,Banner和Karaoke四種形式.為集中學習這里就不作介紹將其放到SSA代碼部分說明.
Text---字幕區---在這里可以添加代碼改變字體屬性,實現多種特效
????????好了,累死了,休息一會兒,相信在看完上面的文章后你應該對SSA的字幕有一定的了解了吧,如果這一步搞定的話那下面的步驟就簡單多了。。
????????下一步:如果將字幕加到文件中去?
當然得是AVS了。打開記事本編寫AVS腳本:
LoadPlugin("VSFilter.dll")
DirectShowSource("待轉換的文件路徑及文件名", fps=15, convertfps=true)
TextSub("SSA文件")
Levels(0,1.2,255,0,255)
看了上在的代碼:第一句就是LoadPlugin("VSFilter.dll"),那就別急了,先到網上去下載VSFilter.dll,當然你也可以到本網上下載。
下載后將文件復制到你的SYSTEM32目錄下面。
執行命令“regsvr32 VSFilter.dll”完成該DLL文件的注冊。
好了,到了這里你可以正確引用VSFilter.dll了。
????????下面的事件就是寫一句FFMPEG命令(舉個最簡單的例子:ffmpeg -i XXX.avs -y test.flv)去執行,就可以得到加字幕后的FLV文件了。
????????好了,朋友們去享受AVS給我們帶來的方便吧。由于本文才疏學淺,肯定有說的不到的地方,還請更正(直接在下面留言就可以了)。我將在后面寫一些關于AVS加載別的格式或者水印的文章。
本文如果需要轉載請注明出處:捷群科技(HTTP://www.jiequn.net)

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/454004.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/454004.shtml
英文地址,請注明出處:http://en.pswp.cn/news/454004.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

化工圖紙中LISP_必備干貨丨石油化工安裝工程質量與成本控制研究

對于整個石油化工工程來說,石油化工的安裝工程在其中是最重要并且最核心的一個環節,其對石油化工工程的質量有著決定性的作用。從客觀的角度來說,如果石油化工安裝工程在實際的施工過程中出現任何的問題,就會威脅到周邊人群的生命…

[原創]windows server 2012 AD架構 試驗 系列 – 15解決AD復制沖突

[原創]windows server 2012 AD架構 試驗 系列 – 15解決AD復制沖突 這節我詳細說下 ADDS使用stamp來作為解決沖突的依據 Stamp由三塊組成 Version, time stamp , source DC GUID (發生對象修改行為的源DC的GUID) 一般來說沖突分為幾下情況: 1-屬性沖突 你可以用repadmin來查看版…

Python全局變量和局部變量

全局變量和局部變量 定義在函數內部的變量擁有一個局部作用域,定義在函數外的擁有全局作用域。   局部變量只能在其被聲明的函數內部訪問,而全局變量可以在整個程序范圍內訪問。調用函數時,所有在函數內聲明的變量名稱都將被加入到作用域中…

前端之 jQuery 入門

jQuery介紹 jQuery是一個輕量級的、兼容多瀏覽器的JavaScript庫。jQuery使用戶能夠更方便地處理HTML Document、Events、實現動畫效果、方便地進行Ajax交互,能夠極大地簡化JavaScript編程。它的宗旨就是:“Write less, do more.“ jQuery的優勢 一款輕…

python劍指offer替換空格_迷人的算法-劍指offer面試題5:替換空格

題目:請實現一個函數,把字符串中的每個空格替換成"%20"。例如,輸入"We are happy.",則輸出"We%20are%20happy."。此題看似簡單,實則坑還是比較多的。替換字符的長度有變化,由…

音頻視頻解決方案:GStreamer/ffmpeg/ffdshow/directshow/vfw

音頻視頻編程相關:GStreamer/ffmpeg/directshow/vfw linux和window下幾種流行的音頻視頻編程框架作一個總結,防止自己迷惘,免于暈頭轉向。 一、GStreamer GStreamer is a library that allows the construction of graphs of media-handlin…

Linux 將進程放入后臺執行,解決網絡,ssh斷開導致進程結束(nohup, setsid, , disown)...

Linux 將進程放入后臺執行,解決網絡,ssh斷開導致進程結束(nohup, setsid, &, disown) 1、nohup 命令 我們知道,當用戶注銷(logout)或者網絡斷開時,終端會收到 HUP(…

bzoj1927

1927: [Sdoi2010]星際競速Time Limit: 20 Sec Memory Limit: 259 MBSubmit: 2556 Solved: 1580[Submit][Status][Discuss] Description 10年一度的銀河系賽車大賽又要開始了。作為全銀河最盛大的活動之一,奪得這個項目的冠軍無疑是很多人的夢想,來自杰…

python until怎么用_python基礎之從認識python到python的使用

python的歷史:python的創始人是吉多范羅蘇姆(Guido van Rossum),人稱“龜叔”,1989年圣誕節期間,Guido開始寫Python語言的編譯器。他希望這個叫做Python的語言能符合他的理想:創造一種C和shell之間,功能全面…

前端之同源策略 Jsonp 與 CORS

同源策略 同源策略(Same origin policy)是一種約定,它是瀏覽器最核心也最基本的安全功能,如果缺少了同源策略,則瀏覽器的正常功能可能都會受到影響。可以說Web是構建在同源策略基礎之上的,瀏覽器只是針對同…

vue新手入門——vue-cli搭建

首先說明,以下內容vue官網都有文檔,如果覺得麻煩啰嗦,請移步至 安裝-vue.js 。 準備工作: 1.下載并安裝node環境,一般情況下安裝好node之后,npm也會安裝好。具體安裝的話,百度大概能幫得上忙。 …

如何看懂源代碼–(分析源代碼方法)

我們在寫程式時,有不少時間都是在看別人的代碼。例如看小組的代碼,看小組整合的守則,若一開始沒規劃怎么看, 就會“嚕看嚕苦(臺語) ” 不管是參考也好,從開源抓下來研究也好,為了了解…

linux關于安裝

一.安裝gcc gcc cloog-ppl ppl(libppl.so.7/libppl_c.so.2) cpp mpfr(libmpfr.so.1) gcc-c libstdc-devel mpfr-2.4.1-6.el6.i686.rpm和ppl-0.10.2-11.el6.i686.rpm 快捷鍵rz sz: rz、sz命令沒找到? 安裝lrzsz即可: shell># y…

python cmath模塊_cmath模塊-PYTHON

這是一個float型的常數>>> cmath.e2.718281828459045>>> type(cmath.e)文檔>>> import cmath>>> help(cmath)Help on module cmath:NAMEcmathFILE/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload/cm…

Python 第三方模塊之 pdfkit

pdfkit,把 HTMLCSS 格式的文件轉換成 PDF 格式文檔的一個工具。 其實,pdfkit 是 html 轉成 pdf 工具包 wkhtmltopdf 的 Python 封裝。所以,首先安裝 wkhtmltopdf 。 一般情況下,wkhtmltopdf需要手動安裝,網站是 https…

LNMP環境添加第三方模塊

一.在LNMP環境下添加memcache模塊 1.安裝依賴庫(libevent) [rootnode1 ~]# tar xvf libevent-2.0.21-stable.tar.gz [rootnode1 ~]# cd libevent-2.0.21-stable [rootnode1 libevent-2.0.21-stable]# ./configure --prefix/usr/local/libevent [rootnode1 libevent-2.0.21-sta…

學生成績管理系統-程序維護

托管平臺地址:https://gitee.com/lucess/StudentMarkManage.git 小組名稱:干翻沈師 程序運行方法: 1、后臺服務:進入項目文件夾執行 python TeamProject.py runsercer 0.0.0.0:5050 2、前臺服務:進入./WEB-INFO/TeamProjectWeb 文件夾執行 ya…

改需求

轉載于:https://www.cnblogs.com/gw2010/p/7856484.html

架構師一般做到多少歲_軟件測試可以做到多大歲數?

做這個行業也幾年了,經常聽到有人問,軟件測試這個行業能干到多少歲,當然里邊包含想要進入這個行業的和已經在這個行業里邊發展的!基本上軟件測試可以分為三條職業發展路線:技術路線、管理路線、產品路線!目…

Python 第三方模塊之 MySQL數據庫連接模塊 PyMySQL

PyMySQL的安裝 pip install PyMySQL python連接數據庫 import pymysqlconn pymysql.connect(hostlocalhost, userroot, password"root",databasedb, port3306, # 數字3306charsetutf8, # 不是utf-8autocommitTrue # autocommitTrue 讓每次提交都去調用…