溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

怎么在Linux中編輯字幕

發(fā)布時間:2021-10-23 10:47:03 來源:億速云 閱讀:139 作者:小新 欄目:系統(tǒng)運維

這篇文章主要為大家展示了“怎么在Linux中編輯字幕”,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“怎么在Linux中編輯字幕”這篇文章吧。

從閉路字幕數(shù)據(jù)中提取字幕

大概在 2012、2013 年我開始了解到有一款叫做 CCEextractor 的工具。隨著時間的推移,它已經(jīng)成為我必不可少的工具之一,尤其是當(dāng)我偶然發(fā)現(xiàn)一份內(nèi)含有字幕的媒體文件。

CCExtractor 負責(zé)解析視頻文件以及從閉路字幕closed captions數(shù)據(jù)中產(chǎn)生獨立的字幕文件。

CCExtractor 是一個跨平臺的、自由開源工具。自它形成的那年起該工具已經(jīng)成熟了不少而如今已成為 GSOC 和谷歌編碼輸入的一部分。

簡單來說,這個工具基本上是一系列腳本,這些腳本以一種順序方式一個接著一個地給你提供提取到的字幕。

你可以按照本頁的 CCExtractor 安裝指南進行操作。

若安裝后你想從媒體文件中提取字幕,請按以下步驟操作:

ccextractor <path_to_video_file>

該命令將會輸出以下內(nèi)容:

$ ccextractor $something.mkvCCExtractor 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.mkvFile seems to be a Matroska/WebM containerAnalyzing data in Matroska mode Document type: matroskaTimecode scale: 1000000Muxing app: libebml v1.3.1 + libmatroska v1.4.2Writing app: mkvmerge v8.2.0 ('World of Adventure') 64bitTitle: $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:34100%  |  144:34Output file: $something_eng.srtDone, processing time = 6 secondsIssues? Open a ticket herehttps://github.com/CCExtractor/ccextractor/issues

它會大致瀏覽媒體文件。在這個例子中,它發(fā)現(xiàn)該媒體文件是馬拉雅拉姆語言(mal)并且格式是 .mkv。之后它將字幕文件提取出來,命名為源文件名并添加“_eng”后綴。

CCExtractor 是一款用來增強字幕功能和字幕編輯的優(yōu)秀工具,我將在下一部分對它進行介紹。

趣味閱讀:在 vicaps 有一份有趣的字幕提要,它講解和分享為何字幕對我們?nèi)绱酥匾?。對于那些對這類話題感興趣的人來說,這里面也有許多電影制作的細節(jié)。

用 SubtitleEditor 工具編輯字幕

你大概意識到大多數(shù)的字幕都是 .srt 格式 的。這種格式的優(yōu)點在于你可以將它加載到文本編輯器中并對它進行少量的修改。

當(dāng)進入一個簡單的文本編輯器時,一個 srt 文件看起來會是這個樣子:

100:00:00,959 --&gt; 00:00:13,744"THE CABINETOF DR. CALIGARI" 200:00:40,084 --&gt; 00:01:02,088A TALE of the modern re-appearance of an 11th Century Mythinvolting the strange and mysterious influenceof a mountebank monk over a somnambulist.

我分享的節(jié)選字幕來自于一部非常老的德國電影《卡里加里博士的小屋》(1920)。

Subtitleeditor 是一款非常棒的字幕編輯軟件。字幕編輯器可以用來設(shè)置字幕持續(xù)時間、與多媒體文件同步的字幕幀率以及字幕間隔時間等等。接下來我將在這分享一些基本的字幕編輯。

怎么在Linux中編輯字幕

首先,以安裝 ccextractor 工具同樣的方式安裝 subtitleeditor 工具,使用你自己喜愛的安裝方式。在 Debian 中,你可以使用命令:

sudo apt install subtitleeditor

當(dāng)你安裝完成后,讓我們來看一下在你編輯字幕時一些常見的場景。

調(diào)整幀率使其媒體文件同步

如果你發(fā)現(xiàn)字幕與視頻不同步,一個原因可能是視頻文件的幀率與字幕文件的幀率并不一致。

你如何得知這些文件的幀率呢,然后呢?為了獲取視頻文件的幀率,你可以使用 mediainfo 工具。首先你可能需要發(fā)行版的包管理器來安裝它。

使用 mediainfo 非常簡單:

$ 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 。我們看到的另一個幀率則是音頻文件的幀率。雖然我可以分享為何在視頻解碼和音頻解碼等地方會使用特定的 fps,但這將會是一個不同的主題,與它相關(guān)的歷史信息有很多。

下一個問題是解決字幕文件的幀率,這個稍微有點復(fù)雜。

通常情況下,大多數(shù)字幕都是壓縮格式的。將.zip 歸檔文件和字幕文件(以 XXX.srt 結(jié)尾)一起解壓縮。除此之外,通常還會有一個同名的 .info 文件,該文件可能包含字幕的幀率。

如果不是,那么通常最好去某個站點并從具有該幀速率信息的站點下載字幕。對于這個特定的德文文件,我使用 Opensubtitle.org 來找到它。

正如你在鏈接中所看到的,字幕的幀率是 23.976 FPS 。很明顯,它不能與幀率為 25.000 FPS 的視頻文件一起很好地播放。

在這種情況下,你可以使用字幕編輯工具來改變字幕文件的幀率。

按下 CTRL+A 選擇字幕文件中的全部內(nèi)容。點擊 “Timings -> Change Framerate” ,將 23.976 fps 改為 25.000 fps 或者你想要的其他幀率,保存已更改的文件。

怎么在Linux中編輯字幕

synchronize frame rates of subtitles in Linux

改變字幕文件的起點

有時以上的方法就足夠解決問題了,但有時候以上方法并不足夠解決問題。

在幀率相同時,你可能會發(fā)現(xiàn)字幕文件的開頭與電影或媒體文件中起點并不相同。

在這種情況下,請按以下步驟進行操作:

按下 CTRL+A 鍵選中字幕文件的全部內(nèi)容。點擊 “Timings -> Select Move Subtitle” 。

怎么在Linux中編輯字幕

Move subtitles using Subtitle Editor on Linux

設(shè)定字幕文件的新起點,保存已更改的文件。

怎么在Linux中編輯字幕

Move subtitles using Subtitle Editor in Linux

如果你想要時間更精確一點,那么可以使用 mpv 來查看電影或者媒體文件并點擊進度條(可以顯示電影或者媒體文件的播放進度),它也會顯示微秒。

通常我喜歡精準無誤的操作,因此我會試著盡可能地仔細調(diào)節(jié)。相較于人類的反應(yīng)時間來說,MPV 中的反應(yīng)時間很精確。如果我想要極其精確的時間,那么我可以使用像 Audacity 之類的東西,但是那是另一種工具,你可以在上面做更多的事情。那也將會是我未來博客中將要探討的東西。

調(diào)整字幕間隔時間

有時,兩種方法都采用了還不夠,甚至你可能需要縮短或增加間隔時間以使其與媒體文件同步。這是較為繁瑣的工作之一,因為你必須單獨確定每個句子的間隔時間。尤其是在媒體文件中幀率可變的情況下(現(xiàn)已很少見,但你仍然會得到此類文件)

在這種設(shè)想下,你可能因為無法實現(xiàn)自動編輯而不得不手動的修改間隔時間。最好的方式是修改視頻文件(會降低視頻質(zhì)量)或者換另一個更高質(zhì)量的片源,用你喜歡的設(shè)置對它進行轉(zhuǎn)碼 。

以上是“怎么在Linux中編輯字幕”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI