您好,登錄后才能下訂單哦!
這篇文章將為大家詳細(xì)講解有關(guān)Linux中怎么編輯視頻字幕,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對(duì)相關(guān)知識(shí)有一定的了解。
導(dǎo)讀 | 我作為一位世界電影和地區(qū)電影愛好者已經(jīng)幾十年了。這期間字幕是一個(gè)必不可少的工具,它可以使我享受來自不同國(guó)家不同語言的優(yōu)秀電影。如果你喜歡觀看帶有字幕的電影,你可能會(huì)注意到有時(shí)字幕并不同步或者說并不正確。你知道你可以自己編寫字幕并使得它們更完美嗎?讓我們向你展示一些 Linux 中的基本字幕編輯吧。 |
從閉路字幕數(shù)據(jù)中提取字幕
大概在 2012、2013 年我開始了解到有一款叫做 CCEextractor 的工具。隨著時(shí)間的推移,它已經(jīng)成為我必不可少的工具之一,尤其是當(dāng)我偶然發(fā)現(xiàn)一份內(nèi)含有字幕的媒體文件。
CCExtractor 負(fù)責(zé)解析視頻文件以及從閉路字幕closed captions數(shù)據(jù)中產(chǎn)生獨(dú)立的字幕文件。
CCExtractor 是一個(gè)跨平臺(tái)的、自由開源工具。自它形成的那年起該工具已經(jīng)成熟了不少而如今已成為 GSOC 和谷歌編碼輸入的一部分。
簡(jiǎn)單來說,這個(gè)工具基本上是一系列 腳本,這些 腳本以一種順序方式一個(gè)接著一個(gè)地給你提供提取到的字幕。
你可以按照本頁的 CCExtractor 安裝指南進(jìn)行操作。
若安裝后你想從媒體文件中提取字幕,請(qǐng)按以下步驟操作:
ccextractor
該 命令將會(huì)輸出以下內(nèi)容:
$ ccextractor $something.mkv CCExtractor 0.87, Carlos Fernandez Sanz, Volker Quetschke. Teletext portions taken from Petr Kutalek's telxcc -------------------------------------------------------------------------- Input: $something.mkv [Extract: 1] [Stream mode: Autodetect] [Program : Auto ] [Hauppage mode: No] [Use MythTV code: Auto] [Timing mode: Auto] [Debug: No] [Buffer input: No] [Use pic_order_cnt_lsb for H.264: No] [Print CC decoder traces: No] [Target format: .srt] [Encoding: UTF-8] [Delay: 0] [Trim lines: No] [Add font color data: Yes] [Add font typesetting: Yes] [Convert case: No] [Video-edit join: No] [Extraction start time: not set (from start)] [Extraction end time: not set (to end)] [Live stream: No] [Clock frequency: 90000] [Teletext page: Autodetect] [Start credits text: None] [Quantisation-mode: CCExtractor's internal function] ----------------------------------------------------------------- Opening file: $something.mkv File seems to be a Matroska/WebM container Analyzing data in Matroska mode Document type: matroska Timecode scale: 1000000 Muxing app: libebml v1.3.1 + libmatroska v1.4.2 Writing app: mkvmerge v8.2.0 ('World of Adventure') 64bit Title: $something Track entry: Track number: 1 UID: 1 Type: video Codec ID: V_MPEG4/ISO/AVC Language: mal Name: $something Track entry: Track number: 2 UID: 2 Type: audio Codec ID: A_MPEG/L3 Language: mal Name: $something Track entry: Track number: 3 UID: somenumber Type: subtitle Codec ID: S_TEXT/UTF8 Name: $something 99% | 144:34 100% | 144:34 Output file: $something_eng.srt Done, processing time = 6 seconds Issues? Open a ticket here https://github.com/CCExtractor/ccextractor/issues
它會(huì)大致瀏覽媒體文件。在這個(gè)例子中,它發(fā)現(xiàn)該媒體文件是馬拉雅拉姆語言(mal)并且格式是 .mkv。之后它將字幕文件提取出來,命名為源文件名并添加“_eng”后綴。
CCExtractor 是一款用來增強(qiáng)字幕功能和字幕編輯的優(yōu)秀工具,我將在下一部分對(duì)它進(jìn)行介紹。
趣味閱讀:在 vicaps 有一份有趣的字幕提要,它講解和分享為何字幕對(duì)我們?nèi)绱酥匾?。?duì)于那些對(duì)這類話題感興趣的人來說,這里面也有許多電影制作的細(xì)節(jié)。
用 SubtitleEditor 工具編輯字幕
你大概意識(shí)到大多數(shù)的字幕都是 .srt 格式 的。這種格式的優(yōu)點(diǎn)在于你可以將它加載到文本編輯器中并對(duì)它進(jìn)行少量的修改。
當(dāng)進(jìn)入一個(gè)簡(jiǎn)單的文本編輯器時(shí),一個(gè) srt 文件看起來會(huì)是這個(gè)樣子:
1 00:00:00,959 --> 00:00:13,744 "THE CABINET OF DR. CALIGARI" 2 00:00:40,084 --> 00:01:02,088 A TALE of the modern re-appearance of an 11th Century Myth involting the strange and mysterious influence of a mountebank monk over a somnambulist.
我分享的節(jié)選字幕來自于一部非常老的德國(guó)電影《卡里加里博士的小屋》(1920)。
Subtitleeditor 是一款非常棒的字幕編輯軟件。字幕編輯器可以用來設(shè)置字幕持續(xù)時(shí)間、與多媒體文件同步的字幕幀率以及字幕間隔時(shí)間等等。接下來我將在這分享一些基本的字幕編輯。
首先,以安裝 ccextractor 工具同樣的方式安裝 subtitleeditor 工具,使用你自己喜愛的安裝方式。在 Debian 中,你可以使用 命令:
sudo apt install subtitleeditor
當(dāng)你安裝完成后,讓我們來看一下在你編輯字幕時(shí)一些常見的場(chǎng)景。
調(diào)整幀率使其媒體文件同步
如果你發(fā)現(xiàn)字幕與視頻不同步,一個(gè)原因可能是視頻文件的幀率與字幕文件的幀率并不一致。
你如何得知這些文件的幀率呢,然后呢?為了獲取視頻文件的幀率,你可以使用 mediainfo 工具。首先你可能需要發(fā)行版的包管理器來安裝它。
使用 mediainfo 非常簡(jiǎn)單:
$ mediainfo somefile.mkv | grep Frame Format settings : CABAC / 4 Ref Frames Format settings, ReFrames : 4 frames Frame rate mode : Constant Frame rate : 25.000 FPS Bits/(Pixel*Frame) : 0.082 Frame rate : 46.875 FPS (1024 SPF)
現(xiàn)在你可以看到視頻文件的幀率是 25.000 FPS 。我們看到的另一個(gè)幀率則是音頻文件的幀率。雖然我可以分享為何在視頻解碼和音頻解碼等地方會(huì)使用特定的 fps,但這將會(huì)是一個(gè)不同的主題,與它相關(guān)的歷史信息有很多。
下一個(gè)問題是解決字幕文件的幀率,這個(gè)稍微有點(diǎn)復(fù)雜。
通常情況下,大多數(shù)字幕都是壓縮格式的。將.zip 歸檔文件和字幕文件(以 XXX.srt 結(jié)尾)一起解壓縮。除此之外,通常還會(huì)有一個(gè)同名的 .info 文件,該文件可能包含字幕的幀率。
如果不是,那么通常最好去某個(gè)站點(diǎn)并從具有該幀速率信息的站點(diǎn)下載字幕。對(duì)于這個(gè)特定的德文文件,我使用 Opensubtitle.org 來找到它。
正如你在鏈接中所看到的,字幕的幀率是 23.976 FPS 。很明顯,它不能與幀率為 25.000 FPS 的視頻文件一起很好地播放。
在這種情況下,你可以使用字幕編輯工具來改變字幕文件的幀率。
按下 CTRL+A 選擇字幕文件中的全部?jī)?nèi)容。點(diǎn)擊 “Timings -> Change Framerate” ,將 23.976 fps 改為 25.000 fps 或者你想要的其他幀率,保存已更改的文件。
synchronize frame rates of subtitles in Linux
改變字幕文件的起點(diǎn)
有時(shí)以上的方法就足夠解決問題了,但有時(shí)候以上方法并不足夠解決問題。
在幀率相同時(shí),你可能會(huì)發(fā)現(xiàn)字幕文件的開頭與電影或媒體文件中起點(diǎn)并不相同。
在這種情況下,請(qǐng)按以下步驟進(jìn)行操作:
按下 CTRL+A 鍵選中字幕文件的全部?jī)?nèi)容。點(diǎn)擊 “Timings -> Select Move Subtitle” 。
Move subtitles using Subtitle Editor on Linux
設(shè)定字幕文件的新起點(diǎn),保存已更改的文件。
Move subtitles using Subtitle Editor in Linux
如果你想要時(shí)間更精確一點(diǎn),那么可以使用 mpv 來查看電影或者媒體文件并點(diǎn)擊進(jìn)度條(可以顯示電影或者媒體文件的播放進(jìn)度),它也會(huì)顯示微秒。
通常我喜歡精準(zhǔn)無誤的操作,因此我會(huì)試著盡可能地仔細(xì)調(diào)節(jié)。相較于人類的反應(yīng)時(shí)間來說,MPV 中的反應(yīng)時(shí)間很精確。如果我想要極其精確的時(shí)間,那么我可以使用像 Audacity 之類的東西,但是那是另一種工具,你可以在上面做更多的事情。那也將會(huì)是我未來博客中將要探討的東西。
調(diào)整字幕間隔時(shí)間
有時(shí),兩種方法都采用了還不夠,甚至你可能需要縮短或增加間隔時(shí)間以使其與媒體文件同步。這是較為繁瑣的工作之一,因?yàn)槟惚仨殕为?dú)確定每個(gè)句子的間隔時(shí)間。尤其是在媒體文件中幀率可變的情況下(現(xiàn)已很少見,但你仍然會(huì)得到此類文件)
在這種設(shè)想下,你可能因?yàn)闊o法實(shí)現(xiàn)自動(dòng)編輯而不得不手動(dòng)的修改間隔時(shí)間。最好的方式是修改視頻文件(會(huì)降低視頻質(zhì)量)或者換另一個(gè)更高質(zhì)量的片源,用你喜歡的設(shè)置對(duì)它進(jìn)行轉(zhuǎn)碼 。這又是一重大任務(wù),以后我會(huì)在我的一些博客文章上闡明。
總結(jié)
以上我分享的內(nèi)容或多或少是對(duì)現(xiàn)有字幕文件的改進(jìn)。如果從頭開始,你需要花費(fèi)大量的時(shí)間。我完全沒有分享這一點(diǎn),因?yàn)橐徊侩娪盎蛞粋€(gè)小時(shí)內(nèi)的任何視頻材料都可以輕易地花費(fèi) 4-6 個(gè)小時(shí),甚至更多的時(shí)間,這取決于字幕員的技巧、耐心、上下文、行話、口音、是否是以英語為母語的人、翻譯等,所有的這些都會(huì)對(duì)字幕的質(zhì)量產(chǎn)生影響。
我希望自此以后你會(huì)覺得這件事很有趣,并將你的字幕處理的更好一點(diǎn)。
關(guān)于Linux中怎么編輯視頻字幕就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。