用于視頻下載/視頻轉(zhuǎn)音頻/音頻分割基于R語言的輕量流程化腳本

Author: Wang Jiahao

Date: 2020-10-27

GitHub: https://github.com/JiahaoWongg/Bilidown

Contact: jhaowong1998@sina.com

目錄
目錄

一、簡介

話說這也算是第二個版本了,第一個版本 是寫在新冠暴發(fā)之初,因無法返校無聊至極而寫。第一版所實現(xiàn)的功能不多,因此一直有改進的想法。

腳本所實現(xiàn)的功能看標題大家也能猜出一二,構思由來已久,但我接觸代碼的世界在當時也才半年而已。隨著知識的增加和實際需求的提出,便萌生了用R語言實現(xiàn)這些功能的想法了。

我比較喜歡聽音樂,特別是周杰倫的歌,而其歌曲的扒帶也是我的最愛,B站有許多優(yōu)質(zhì)的歌曲扒帶視頻,因此我就想要把這些視頻轉(zhuǎn)為音頻,放到手機音樂播放器里。后來又實現(xiàn)了對音頻文件的分割,并將這些過程流程化,你只需要提供視頻鏈接和簡單的參數(shù)的就可實現(xiàn)這些功能??偣惨膊?200來行代碼,為了便于閱讀,其中大概含有 3/4 的注釋行和空行。

先說這么多,接下來具體介紹腳本所實現(xiàn)的功能。

二、功能介紹

根據(jù)提供視頻鏈接 URL 來源的不同,將功能劃分為兩大功能模式:來源于命令行 CMD 和來源于文本文件。

① CMD模式

  • 視頻 URL 直接由命令行提供,即直接在終端 (windows 系統(tǒng)是Win + X + C 打開) 里輸入URL
  • 根據(jù) URL 獲取視頻文件,默認下載最高清晰度格式,VIP 視頻不能下載,不能解析的 URL 不能下載
  • 如果所下載的視頻文件為FLV格式,則將其轉(zhuǎn)為更容易播放的MP4格式
  • 如果你愿意,你可以將 MP4 轉(zhuǎn)為 MP3 音頻格式,便于聽
  • 如果你愿意,你可以將 MP3 分割為(既保留)你想要的時間段
  • 根據(jù)你所指定的視頻和音頻的文件儲存路徑(既文件夾),將結(jié)果文件儲存在指定路徑內(nèi)
  • 所有的這些只需一行代碼即可出結(jié)果

② 文件模式

  • 視頻URL不是直接輸入的,而是儲存在單獨的一個文件里。這樣你可以實現(xiàn)多個視頻的下載與后續(xù)處理
  • 每一個URL循環(huán)一次 ① 中所述的過程,實現(xiàn)批量下載

如果對于代碼和命令完全陌生的朋友,或許有些地方不明白,不過沒關系,具體操和參數(shù)設置作將在下一節(jié)具體講述。

三、環(huán)境配置

這一節(jié)是重頭戲,也是最難的部分,使用不好的朋友要多讀讀。

另外,由于我電腦是 ==window== 系統(tǒng),所以我只講在 window 里的操作方法。

① 語言環(huán)境配置

需要的語言環(huán)境及工具:Python、R、you-get、ffmpeg,你已經(jīng)有的就選擇性安裝

接下來一一介紹,不過首先講一點,安裝軟件的時候要指定安裝路徑,不要總把軟件放在C盤的Program Files里。安裝的路徑必須要知道,后面需要用到。比如我將D盤作為軟件盤,找軟件路徑的時候非常方便:

  • Python:下載地址: Python(用于安裝 you-get 和 ffmpeg)

  • R: 下載地址:R, 用于運行腳本

  • 添加R和Python的環(huán)境變量,參照:Windows 系統(tǒng)添加環(huán)境變量

  • 檢驗兩個語言環(huán)境是否安裝成功:

    快捷鍵 Win + X + C 打開命令提示符面板(以下簡稱 終端 ):

    Microsoft Windows [版本 10.0.18362.1082]
    (c) 2019 Microsoft Corporation。保留所有權利。
    
    C:\Users\Jay Chou>
    

    運行:

    python --version & Rscript --version
    

    得到以下結(jié)果,則安裝并環(huán)境配置成功!恭喜~

    C:\Users\Jay Chou>python --version & Rscript --version
    Python 3.8.5
    R scripting front-end version 3.6.2 (2019-12-12)
    
    C:\Users\Jay Chou>
    

② 安裝 you-getffmpeg

  • you-get:下載視頻文件和彈幕文件之類的

  • ffmpeg:文件格式轉(zhuǎn)換

    運行:

  pip install you-get & pip install FFmpeg

運行:

  you-get --version & ffmpeg -version

前三行得到以下結(jié)果,則安裝成功!

C:\Users\Jay Chou>you-get --version & ffmpeg -version
you-get: version 0.4.1456, a tiny downloader that scrapes the web.
ffmpeg version git-2020-01-15-0dc0837 Copyright (c) 2000-2020 the FFmpeg developers
built with gcc 9.2.1 (GCC) 20200111

Python安裝的軟件不需要額外添加環(huán)境變量

至此,你已經(jīng)完成了最難的部分,Congratulations !

三、腳本下載

訪問:https://github.com/JiahaoWongg/Bilidown

在瀏覽器下載歷史內(nèi),打開該文件所在路徑:

解壓,路徑我設為:D:\,盡可能簡單

將文件夾簡化重命名為Bilidown

==以上設置即為初次使用該腳本所需的所環(huán)境配置和操作==

==以下為以后每次運次腳本時的流程==

四、 腳本運行測試

① 打開終端并切換工作路徑

快捷鍵 Win + X + C 打開命令提示符面板

運行:

d: & cd \Bilidown

結(jié)果:

C:\Users\Jay Chou>d: & cd \Bilidown

D:\Bilidown>

② 腳本運行測試

運行:

Rscript bilidown.R -h

結(jié)果:

D:\Bilidown>Rscript bilidown.R -h
Usage: bilidown.R [options]


Options:
        --url=URL
                video URL.

        --list=LIST
                Whether download playlist.

        --mp3=MP3
                Whether tranfer to mp3.

        --file=FILE
                Whether get URL(s) from file.

        --mp3Folder=MP3FOLDER
                Mp3 output folder.

        --mp4Folder=MP4FOLDER
                Mp4 output folder.

        --name=NAME
                Rename output file.

        --start=START
                Start point of mp3 cut

        --end=END
                end point of mp3 cut

        -h, --help
                Show this help message and exit



D:\Bilidown>

出現(xiàn)這樣的結(jié)果說明一切正常,其中``Options`即為運行腳本所需設的參數(shù),可以閱讀一下,根據(jù)提示差不多能看出其作用。

測試成功后我們就要進行真正的運行了,該腳本和其他命令行軟件一樣,都必須賦予指定格式的參數(shù)或文件,一點錯誤一般都是不允許的,或者結(jié)果可能會不是你想要的。所以下一節(jié)的參數(shù)設置也至關重要,決定了能不能得到你想要的結(jié)果!

接下來將一一解釋每一參數(shù)的作用和如何設置

五、參數(shù)設置

第二節(jié)內(nèi)容提到,該腳本有兩個使用模式,URL來源于CMD模式URL來源于文件模式

因此參數(shù)設置也要分為這兩部分講解

首先要知道的是:

  • 參數(shù)的使用方法為: --參數(shù)名 參數(shù)值,在下一節(jié)的案例中將會更詳細地看到

  • 每種模式你只需要提供與之對應的url來源即可,既參數(shù)url和file必須且只能存在其中一個

  • 如果兩個參數(shù)url和file都存在或都不存,腳本也會提示你必須要提供其中之一

  • 下面所述的必選和可選,前者意為必須給這個參數(shù)賦值,而后者可賦可不賦

  • 當給某個可選參數(shù)賦值時,其他的一些參數(shù)可能就變?yōu)榱吮剡x參數(shù)。比如你可以選擇要不要對MP3文件進行分割,如果需要分割,則start參數(shù)需要賦值,這時end參數(shù)自然也就是必選的了

① CMD模式

  • url;視頻鏈接;該模式下為必選參數(shù)

    即為視頻鏈接,直接從視頻觀看頁面的地址欄里粘貼即可,如下圖紅框內(nèi)即為該視頻的URL,復制下來即可

    需要注意的是:==URL要用雙引號包圍起來,因為有的URL中含有特殊字符,如&,會被識別為命令字符,會發(fā)生報錯==

    對應腳本為:

Rscript bilidown.R -- url "https://www.bilibili.com/video/BV1dt4s11a7FX?from=search&seid=3497926814758339505"

別猴急運行,說運行了再運行

  • list;是否下載視頻列表;可選參數(shù)

    我們都知道B站的視頻是可以分P的,對于一個分P視頻的其中一P的URL,我們可以選擇只下載這一P或者下載所有P,當然也可以下載指定的P,不過you-get實現(xiàn)不了,作者可以實現(xiàn),但作者太懶就沒加這個功能。

    默認是不下載所有P的,不賦值即可。如果想下載所有P,則需要賦值為TRUE

    下載全P的情況下此時的代碼:

Rscript bilidown.R --url "https://www.bilibili.com/video/BV1dt411a7FX?from=search&seid=3497926814758339505" --list TRUE
  • mp3,是否將MP4文件轉(zhuǎn)化為MP3文件,可選參數(shù)

    默認不轉(zhuǎn)換,如果你只想下載視頻,則不需賦值;如果你還想得到音頻,則需賦值為TRUE

  • mp3Folder;MP3文件保存路徑;可選參數(shù),當MP3為TRUE時為必選參數(shù)

    電腦里可以原先不存在你所指定的文件夾,不存在時腳本會幫你創(chuàng)建;下同

  • mp4Folder;MP4文件保存路徑;必選參數(shù)

插播一條:文件保存路徑必須使用 絕對路徑 ,windowns絕對路徑以盤符開頭,如:D:/Bilidown/MP4

  • name;是否對下載的文件重命名;可選參數(shù)

    默認不重命名,需要重命名的話需要將名字賦值給name參數(shù)

    如在以上全為TRUE的情況下,將下載的視頻及轉(zhuǎn)的音頻均命名為牛逼腳本下載的東東的代碼為:

Rscript bilidown.R --url "https://www.bilibili.com/video/BV1dt411a7FX?from=search&seid=3497926814758339505" --list TRUE --mp3 TRUE --mp3Folder D:/Bilidown/MP3 --mp4Folder D:/Bilidown/MP4 --name 牛逼腳本下載的東東

則輸出文件為:牛逼腳本下載的東東.mp3牛逼腳本下載的東東.mp4

  • start 及 end

    顯然這兩個也是成對出現(xiàn)的,如果你不想將MP3文件分割為你想要的部分,則兩個都賦值即可

    若果想分割,則需要分別對它們進行賦值

    賦的值為時間點,格式為00:00:00,既時分秒

    比如你只想保留轉(zhuǎn)的MP3文件的10秒至1分10秒之間的部分,代碼為:

Rscript bilidown.R --url "https://www.bilibili.com/video/BV1JE411D74q?from=search&seid=12356753915334889298"  --mp3 TRUE --mp3Folder D:/Bilidown/MP3 --mp4Folder D:/Bilidown/MP4 --name 牛逼腳本下載的東東 --start 00:00:10 --end 00:01:10

這就是該模式下最完整的代碼,整理好看一點:

Rscript bilidown.R --url "https://www.bilibili.com/video/BV1dt411a7FX?from=search&seid=3497926814758339505" 
                   --mp3 TRUE 
                   --mp3Folder D:/Bilidown/MP3 
                   --mp4Folder D:/Bilidown/MP4 
                   --name 牛逼腳本下載的東東 
                   --start 00:00:10 
                   --end 00:01:10

一目了然。注意我把list參數(shù)給去掉了,因為,如果你下載全P視頻,那你對多個視頻在同樣的時間點進行切割顯然是不符合邏輯的

② 文件模式

file文件格式要求

? 由于既要考慮用戶的體驗而格式不能太復雜,同時又要考慮作者的能力范圍,因為要實現(xiàn)多個視頻的流程化處理,該文件內(nèi)容稍許復雜,其實也不是很復雜,就是將CMD模式的一些參數(shù)值寫入該文件中而已,需要注意的是文件內(nèi)容格式必須遵守規(guī)定,具體規(guī)定如下:

  • 每一行是相互獨立的下載信息,文件格式為 txt 格式
  • 對于某一行來說,你最多可以提供6個下載信息,既CMD模式中提到的url mp3 list name start end
  • 只需要提供參數(shù)值即可,參數(shù)名不需提供,每個參數(shù)值之間必須由空格作為分隔
  • 當然,你也可以提供少于6個的下載信息,但必須遵循的是,參數(shù)值的順序是固定的,即按照==url mp3 list name start end==的順序,如果你所提供的參數(shù)在這6個里面不是連續(xù)的,比如你只想提供url name兩個參數(shù),則你必須將中間空缺的位置的值設為==no==,既==url no no name==,右側(cè)空缺的參數(shù)則不需寫no,直接回車即可
  • 例如,你將一個視頻的URL放在文件里,你想將下載的視頻轉(zhuǎn)換為音頻,但只下載此URL所代表的單P視頻,不需要重命名,而需要將音頻分割,則在URL文件里你可以這樣寫:
"https://www.bilibili.com/video/BV1dt411a7FX?from=search&seid=3497926814758339505" TRUE no no 00:00:10 00:01:10
  • 文件的最后一行==必須是空行==!粘貼完最后一個URL記得==回車==一下!
  • 雖然很有點麻煩,但用起來很香??
該模式參數(shù)設置
  • file; 含有url和其他處理信息的``txt`文件名;該模式下為必選參數(shù)

    需要注意,文件須和bilidown.R腳本位于同一文件夾下,否則你需要提供絕對路徑,如D:/Bilidown/URL_List.txt

  • mp3Folder;可選參數(shù)

    只要你想要這些視頻中的任何一個視頻轉(zhuǎn)為音頻,你就要提供改參數(shù)

  • mp4Folder;仍然是必選參數(shù)

腳本會循環(huán)file文件的每一行,每一循環(huán)執(zhí)行一次CMD模式

六、開始實戰(zhàn)

記得要先進入腳本所在文件夾:

d: & cd Bilidown

①CMD模式

單P下載

命令:

Rscript bilidown.R --url "https://www.bilibili.com/video/BV1JE411D74q?from=search&seid=12356753915334889298"  --mp3 TRUE --mp3Folder D:/Bilidown/MP3 --mp4Folder D:/Bilidown/MP4 --name 周杰倫-秘密花園(扒帶) --start 00:00:10 --end 00:01:10

屏幕顯示的下載過程:

D:\Bilidown>Rscript bilidown.R --url "https://www.bilibili.com/video/BV1JE411D74q?from=search&seid=12356753915334889298"  --mp3 TRUE --mp3Folder D:/Bilidown/MP3 --mp4Folder D:/Bilidown/MP4 --name 周杰倫-秘密花園(扒帶) --start 00:00:10 --end 00:01:10

Downloading video file ...
site:                Bilibili
title:               周杰倫《秘密花園》編曲扒帶
stream:
    - format:        dash-flv720
      container:     mp4
      quality:       高清 720P
      size:          21.9 MiB (22968001 bytes)
    # download-with: you-get --format=dash-flv720 [URL]

Downloading 周杰倫《秘密花園》編曲扒帶.mp4 ...
 100% ( 21.9/ 21.9MB) ├████████████████████████████████████████┤[2/2]  743 kB/s
Merging video parts... Merged into 周杰倫《秘密花園》編曲扒帶.mp4

Skipping captions or danmaku.
Transcoding flv file to mp4 file
Transcoding mp4 file to mp3 file
Cutting mp3 file
Copying & rename files and remove tmpFolder
Done!

D:\Bilidown>

結(jié)果:

MP4 文件:

MP3文件:

可以看到時長只有一分鐘,因為我取的是 00:00:10 至 00:01:10

多P下載

多P下載就不必重命名了

命令:

Rscript bilidown.R --url "https://www.bilibili.com/video/BV17t411K7et?from=search&seid=3759713561223284474"  --mp3 TRUE --list TRUE --mp3Folder D:/Bilidown/MP3 --mp4Folder D:/Bilidown/MP4 

屏幕顯示的下載過程:

D:\Bilidown>Rscript bilidown.R --url "https://www.bilibili.com/video/BV17t411K7et?from=search&seid=3759713561223284474"  --mp3 TRUE --list TRUE --mp3Folder D:/Bilidown/MP3 --mp4Folder D:/Bilidown/MP4

Downloading video file ...
site:                Bilibili
title:               你能猜到這是周杰倫哪一首歌嗎?答案在2P (P1. 你能猜到這是周杰倫哪一首歌嗎?答案在2P)
stream:
    - format:        dash-flv720
      container:     mp4
      quality:       高清 720P
      size:          4.3 MiB (4464751 bytes)
    # download-with: you-get --format=dash-flv720 [URL]

Downloading 你能猜到這是周杰倫哪一首歌嗎?答案在2P (P1. 你能猜到這是周杰倫哪一首歌嗎?答案在2P).mp4 ...
 100% (  4.3/  4.3MB) ├████████████████████████████████████████┤[2/2]  473 kB/s
Merging video parts... Merged into 你能猜到這是周杰倫哪一首歌嗎?答案在2P (P1. 你能猜到這是周杰倫哪一首歌嗎?答案在2P).mp4

Skipping captions or danmaku.
site:                Bilibili
title:               你能猜到這是周杰倫哪一首歌嗎?答案在2P (P2. 致敬科比_考古MV《天地一斗》)
stream:
    - format:        dash-flv720
      container:     mp4
      quality:       高清 720P
      size:          45.2 MiB (47435509 bytes)
    # download-with: you-get --format=dash-flv720 [URL]

Downloading 你能猜到這是周杰倫哪一首歌嗎?答案在2P (P2. 致敬科比_考古MV《天地一斗》).mp4 ...
 100% ( 45.2/ 45.2MB) ├████████████████████████████████████████┤[2/2]   92 kB/s
Merging video parts... Merged into 你能猜到這是周杰倫哪一首歌嗎?答案在2P (P2. 致敬科比_考古MV《天地一斗》).mp4

Skipping captions or danmaku.
Transcoding flv file to mp4 file
Transcoding mp4 file to mp3 file
Copying & rename files and remove tmpFolder
Done!

D:\Bilidown>

結(jié)果:

MP4文件:

MP3文件:

②文件模式

切記URL文件內(nèi)容格式?。。?/p>

我準備了幾個測試數(shù)據(jù),保存在同一文件夾下的``test.txt`文件中,有5個鏈接,給與了不同的處理模式。大家也可以在當前文件夾下找到。在使用的時候按照這樣的格式創(chuàng)建就行了,記得運行的代碼文件名字要改成你自己寫的。

運行代碼:

Rscript bilidown.R --file D:/Bilidown/test.txt --mp3Folder D:/Bilidown/MP3 --mp4Folder D:/Bilidown/MP4 

屏幕顯示的下載過程:

D:\Bilidown>Rscript bilidown.R --file D:/Bilidown/test.txt --mp3Folder D:/Bilidown/MP3 --mp4Folder D:/Bilidown/MP4

Processing serial number 1, Remian 4

Downloading video file ...
site:                Bilibili
title:               我把周杰倫婚禮進行曲扒帶編出來了
stream:
    - format:        dash-flv
      container:     mp4
      quality:       高清 1080P
      size:          23.7 MiB (24804205 bytes)
    # download-with: you-get --format=dash-flv [URL]

Downloading 我把周杰倫婚禮進行曲扒帶編出來了.mp4 ...
 100% ( 23.7/ 23.7MB) ├████████████████████████████████████████┤[2/2]  106 kB/s
Merging video parts... Merged into 我把周杰倫婚禮進行曲扒帶編出來了.mp4

Skipping captions or danmaku.
Transcoding flv file to mp4 file
Transcoding mp4 file to mp3 file
Copying & rename files and remove tmpFolder
Done!

Processing serial number 2, Remian 3

Downloading video file ...
site:                Bilibili
title:               周杰倫秘密花園扒帶伴奏!既然原版的不夠清晰,那就自己做一個吧!
stream:
    - format:        dash-flv
      container:     mp4
      quality:       高清 1080P
      size:          18.2 MiB (19045299 bytes)
    # download-with: you-get --format=dash-flv [URL]

Downloading 周杰倫秘密花園扒帶伴奏!既然原版的不夠清晰,那就自己做一個吧!.mp4 ...
 100% ( 18.2/ 18.2MB) ├████████████████████████████████████████┤[2/2]  696 kB/s
Merging video parts... Merged into 周杰倫秘密花園扒帶伴奏!既然原版的不夠清晰,那就自己做一個吧!.mp4

Skipping captions or danmaku.
Transcoding flv file to mp4 file
Transcoding mp4 file to mp3 file
Copying & rename files and remove tmpFolder
Done!

Processing serial number 3, Remian 2

Downloading video file ...
site:                Bilibili
title:               周杰倫在快本給吳昕的三鍵成曲扒帶
stream:
    - format:        dash-flv
      container:     mp4
      quality:       高清 1080P
      size:          31.1 MiB (32599288 bytes)
    # download-with: you-get --format=dash-flv [URL]

Downloading 周杰倫在快本給吳昕的三鍵成曲扒帶.mp4 ...
 100% ( 31.1/ 31.1MB) ├████████████████████████████████████████┤[2/2]   96 kB/s
Merging video parts... Merged into 周杰倫在快本給吳昕的三鍵成曲扒帶.mp4

Skipping captions or danmaku.
Transcoding flv file to mp4 file
Transcoding mp4 file to mp3 file
Copying & rename files and remove tmpFolder
Done!

Processing serial number 4, Remian 1

Downloading video file ...
site:                Bilibili
title:               周杰倫編曲扒帶第一張專輯《反方向的鐘》編曲扒帶
stream:
    - format:        dash-flv
      container:     mp4
      quality:       高清 1080P
      size:          52.9 MiB (55428095 bytes)
    # download-with: you-get --format=dash-flv [URL]

Downloading 周杰倫編曲扒帶第一張專輯《反方向的鐘》編曲扒帶.mp4 ...
 100% ( 52.9/ 52.9MB) ├████████████████████████████████████████┤[2/2]  100 kB/s
Merging video parts... Merged into 周杰倫編曲扒帶第一張專輯《反方向的鐘》編曲扒帶.mp4

Skipping captions or danmaku.
Transcoding flv file to mp4 file
Transcoding mp4 file to mp3 file
Cutting mp3 file
Copying & rename files and remove tmpFolder
Done!

Processing serial number 5, Remian 0

Downloading video file ...
site:                Bilibili
title:               周杰倫 《蒲公英的約定》完整扒帶還原-林邁可編曲 (P1. 蒲公英的約定)
stream:
    - format:        dash-flv
      container:     mp4
      quality:       高清 1080P
      size:          96.8 MiB (101538738 bytes)
    # download-with: you-get --format=dash-flv [URL]

Downloading 周杰倫 《蒲公英的約定》完整扒帶還原-林邁可編曲 (P1. 蒲公英的約定).mp4 ...
 100% ( 96.8/ 96.8MB) ├████████████████████████████████████████┤[2/2]   90 kB/s
Merging video parts... Merged into 周杰倫 《蒲公英的約定》完整扒帶還原-林邁可編曲 (P1. 蒲公英的約定).mp4

Skipping captions or danmaku.
site:                Bilibili
title:               周杰倫 《蒲公英的約定》完整扒帶還原-林邁可編曲 (P2. 蒲公英的約定伴奏)
stream:
    - format:        dash-flv
      container:     mp4
      quality:       高清 1080P
      size:          61.7 MiB (64708427 bytes)
    # download-with: you-get --format=dash-flv [URL]

Downloading 周杰倫 《蒲公英的約定》完整扒帶還原-林邁可編曲 (P2. 蒲公英的約定伴奏).mp4 ...
 100% ( 61.7/ 61.7MB) ├████████████████████████████████████████┤[2/2]  659 kB/s
Merging video parts... Merged into 周杰倫 《蒲公英的約定》完整扒帶還原-林邁可編曲 (P2. 蒲公英的約定伴奏).mp4

Skipping captions or danmaku.
Transcoding flv file to mp4 file
Transcoding mp4 file to mp3 file
Copying & rename files and remove tmpFolder
Done!

D:\Bilidown>

每處理一個URL都會提示:Processing serial number 1, Remian 4,這告訴你當前處理第幾個URL,還剩多少個等待處理。

結(jié)果:

MP4文件:

MP3文件:

雖然寫URL文件有些麻煩,但現(xiàn)在看來是不是挺值得的??


視頻彈幕文件下載,并以txt格式輸出

結(jié)果展示:

排在上面的是最新的發(fā)布的彈幕,越往下越晚

使用方法

  • 腳本:位于同一目錄下的 getChat.R

  • 參數(shù)

    • url;視頻鏈接;必選參數(shù)

    • name; 重命名;可選參數(shù)

      • 不重命名會默認命名為`chat.txt,所以為了防止文件重復,最好命名一下
    • outFolder;指定txt文件保存位置;可選參數(shù)

      • 指定路徑可以不存在,腳本會自動檢測

運行

Rscript getChat.R --url "https://www.bilibili.com/video/BV1aW411y7Ap?from=search&seid=1744832395255800797" --name 測試 --outFolder Chats

對比


FFmpeg的一些常用功能

文件格式的轉(zhuǎn)換,視音頻的切割都是使用 ffmpeg 軟件完成的,我只是加以包裝整合。

如果小伙伴們想單獨完成上述某一功能的話,ffmpeg 還需略懂一點的

功能介紹

同樣也是在終端里運行,直接使用ffmpeg命令即可,具體常用功能如下

① 格式轉(zhuǎn)換

  • 不同視頻格式之間的轉(zhuǎn)換,視音頻之間的轉(zhuǎn)換等

  • 比如輸入文件為:xxx.format1,輸出文件為:xxx.format2

  • 即要把xxx文件從格式format1轉(zhuǎn)換為`format2

  • 命令為:

ffmpeg -i xxx.format1 `xxx.format2`
  • 以flv轉(zhuǎn)mp4為例:
ffmpeg -i test.flv `test.mp4`

② 視音頻切割

  • 視頻同樣是可以切割的,不過我沒有加入這個功能,不過用法和音頻切割完全一樣

  • 以音頻切割為例:

  • ffmpeg -ss 00:00:10 -t 00:01:00 -i input.mp3 -c copy output.mp3
    

    其中:

    • -i 輸入的音頻
    • -c copy 用原來的編碼并復制到新文件中
    • -ss 起始時間
    • -t 截取音頻時間長度

另外,搜資料時看到一位老兄寫道音視頻還可以有轉(zhuǎn)場效果,ffmpeg的功能真強大:

從0s開始淡入3s

ffmpeg -i input.mp3 -af "afade=t=in:ss=0:d=3" out.mp3

從50秒開始淡出5s

ffmpeg -i input.mp3 -af "afade=t=out:st=50:d=5" out.mp3

參數(shù)-af為音頻濾鏡,afade為音頻淡入淡出。相應的如果是對視頻的操作,這里的參數(shù)afade處可以使用fade。

合并音視頻

ffmpeg -i input1.mp4 -i input2.mp4 -i input3.mp4 -lavfi hstack=inputs=3 output.mp4

需要一一指定輸入文件和輸入文件個數(shù)


如有疑問或糾錯,請聯(lián)系:jhaowong1998@sina.com

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內(nèi)容