偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

What?居然可以將 YouTube 用作免費(fèi)文件托管服務(wù)!

開源
從 YouTube 下載視頻后,可以從該視頻解碼回原始文件。而且 YouTube 對你可以上傳的視頻數(shù)量是沒有限制。

YouBit 允許你在 YouTube 上托管任何類型的文件。

它通過創(chuàng)建一個視頻來實(shí)現(xiàn)該功能,其中每個像素代表原始文件的一個或多個 bits。從 YouTube 下載視頻后,可以從該視頻解碼回原始文件。而且 YouTube 對你可以上傳的視頻數(shù)量是沒有限制。

這其實(shí)并不是一個新穎的想法,其他項(xiàng)目也曾探索過,如 YouTubeDrive 和 fvid 。在這些項(xiàng)目的基礎(chǔ)上,YouBit 添加了一些新的功能和想法,同時也提高了一些性能。

 注意:如果你使用 ?YouBit,顯然 Google 是不會喜歡的,他們可能會懲罰你的帳戶,所以使用風(fēng)險自負(fù)! 

安裝

安裝非常簡單,直接使用 pip 一鍵安裝即可:

pip install youbit

注意: 如果你的平臺沒有 wheel,在安裝之前需要安裝一個 C 語言編譯器。

用法:命令行

編碼并上傳文件:

python -m youbit upload C:/myfile.txt firefox

當(dāng)然首先需要先安裝上 youbit,上面命令中的 firefox 參數(shù)表示 YouBit 應(yīng)該從哪個瀏覽器中提取 cookie 信息來向 YouTube 進(jìn)行身份驗(yàn)證。我們這里使用的就是 Firefox 中登錄的賬號,該參數(shù)可選的值包括 'firefox'、'chrome'、'edge'、'brave'、'opera'、'chromium',在使用之前要確保你已經(jīng)登錄過了 YouTube。

下載并解碼 YouBit 視頻:

python -m youbit download https://youtu.be/dQw4w9WgXcQ

除非另有說明,否則輸出始終保存在當(dāng)前工作目錄中。

解碼本地視頻:

python -m youbit decode C:/myvideo.mp4

注意該視頻需要已從 YouTube 下載,你不能對文件進(jìn)行編碼,然后立即解碼以對其進(jìn)行測試。

編碼文件而不上傳:

python -m youbit encode C:/myfile.txt

用法:Python API

除了使用上面的命令行之前,我們也可以直接使用 Python API 來操作 YouBit。

from youbit import Encoder
with Encoder('C:/myfile.txt') as encoder:
encoder.encode()
url = encoder.upload(browser='opera') # Extract cookies from Opera browser
print(url)
from youbit import Decoder
with Decoder('https://youtu.be/dQw4w9WgXcQ') as decoder:
decoder.download()
path = decoder.decode('C:/mydirectory/') # Save output in 'C:/mydirectory'. Defaults to current working directory.
print(path)

編碼不上傳:

from youbit import Encoder
with Encoder('C:/myfile.txt') as encoder:
path = encoder.encode('C:/mydirectory/') # Saves output in 'C:/mydirectory'. Defaults to current working directory.
print(path)

使用不同的設(shè)置:

from youbit import Encoder
with Encoder('C:/myfile.txt') as encoder:
encoder.encode(ecc=32, bpp=2, zero_frame=True, res='hd', 'crf'=18)
url = encoder.upload(browser='chrome')
print(url)

解碼本地文件:

from youbit import Decoder
with Decoder('C:/myvideo.mp4') as decoder:
path = decoder.decode(
'C:/mydirectory/', # Save output in 'C:/mydirectory'. Defaults to current working directory.
ecc = 32, # The 'ecc' value that was used during encoding.
bpp = 1, # The 'bpp' value that was used during encoding.
zero_frame = False # Whether or not 'zero frames' were used during encoding.
)
print(path)

注意 ecc、bpp 和 zero_frame 是解碼 YouBit 視頻需要知道的 3 條元數(shù)據(jù)。當(dāng) YouBit 處理下載時,它會自動從視頻評論中提取此元數(shù)據(jù)。

常見問題

是否意味著無限的免費(fèi)云存儲?

不。

  • 它非常慢:編碼和解碼需要時間。上傳到 YouTube 的文件比原始文件大得多。YouTube 需要處理視頻。
  • 你不能信任它:如果 YouTube 明天修改了一些算法,你的視頻就有可能無法再被解碼了。

這只是一個非常有趣的探索概念:)

為什么沒有顏色?

因?yàn)樯榷尾蓸訒詷O端的壓縮掉顏色信息。因此,我們只將所有信息保存在亮度通道中。這會產(chǎn)生灰度視頻,并且效果更好。巧合的是,它也使編碼和解碼過程變得不那么復(fù)雜。

什么是'bpp'?

它代表“每像素位數(shù)”,正如你可能已經(jīng)猜到的那樣,它決定了在單個視頻像素中保存了多少位信息。更高的 bpp 允許更高的信息密度 - 與原始文件相比,輸出視頻更小。但是,它也引入了更多損壞的像素。

bpp 為 1 意味著每個像素只有 2 種狀態(tài),1 和 0,開和關(guān),白色和黑色。這意味著我們的灰度像素的值為 255(白色)或 0(黑色)。在解碼過程中,YouBit 將任何 128 或更大的值視為 1,將低于 128 的所有值視為 0。這意味著 YouTube 的壓縮需要將像素的值更改至少 127 才能使其損壞。

現(xiàn)在考慮 bpp 為 2。兩位有 4 種可能的狀態(tài) (00,01,10,11)。所以為了表示 2 位,我們的像素也需要有 4 種可能的狀態(tài)。類似于 (0,85,170,255)。它們之間的距離現(xiàn)在更小了:現(xiàn)在只需更改 43 即可破壞像素。我們的視頻將縮小一半,但在上傳過程中 YouTube 對其重新編碼時更容易損壞。

為什么幀率為 1?

我不確切 YouTube 如何決定分配給流的比特率,但它似乎粗暴地遵循他們推薦的視頻比特率。在其他條件相同的情況下,幀速率為 1 的視頻將獲得與幀速率為 30 的視頻相同的比特率。看看我的目標(biāo)是什么?每幀更有效的帶寬,更少的壓縮。

其次,在編碼過程中使用 1 的幀率允許我們在解碼過程中只讀取關(guān)鍵幀。這個非常重要。測試顯示關(guān)鍵幀與 B 或 P 幀之間的損壞存在巨大差異。許多關(guān)鍵幀將完全沒有任何錯誤,而 GOP 末尾的一些 B 幀幾乎完全無法使用。

如果我們使用 1 的幀率,YouTube 會將其重新編碼為幀率為 6 的視頻。這似乎是 YouTube 上的最小值。在分析了這些 6fps 視頻的 GOP 結(jié)構(gòu)后,很明顯在解碼過程中跳過任何非關(guān)鍵幀是不夠的。我們會看到分散的重復(fù)關(guān)鍵幀。幸運(yùn)的是,這些重復(fù)的關(guān)鍵幀是可預(yù)測的。YouBit 在解碼過程中丟棄它知道的重復(fù)關(guān)鍵幀。

這確實(shí)意味著無法解碼未通過 YouTube 播放的 YouBit 視頻。

為什么不使用 YouTube API 進(jìn)行上傳?

有 2 個原因。一方面,未經(jīng)驗(yàn)證的 API 項(xiàng)目只能上傳私有視頻。這些視頻被鎖定為私密,無法更改。這意味著 YouBit 鏈接將無法在用戶之間共享。

其次,YouTube 數(shù)據(jù) API v3 使用配額系統(tǒng):與 API 的所有交互都有相關(guān)的成本。在每天補(bǔ)充的 10,000 點(diǎn)中,上傳視頻需要花費(fèi)驚人的 1600 點(diǎn),這將限制用戶每天上傳 6 次。

相反,YouBit 從選擇的瀏覽器中提取 cookie,以驗(yàn)證上傳過程自動化的 Selenium 無頭瀏覽器實(shí)例。這很 hacky,增加了很多開銷,并且對 YouTube DOM 的更改非常敏感,但它是我們所擁有的最好的。

上傳后,我需要等多長時間才能下載 YouBit 視頻?

這很棘手,因?yàn)?YouTube 可能需要很長時間才能完全完成視頻處理。如果視頻因?yàn)槿栽谔幚碇卸豢捎?,YouBit 將拋出異常。如果視頻在技術(shù)上可用,但在編碼過程中指定的分辨率尚不可用,YouBit 也將拋出異常。

因此,建議等待足夠的時間。使用 CLI 可以最輕松地檢查任何上傳的 YouBit 視頻的最高可用視頻比特率 (VBR):

py -m youbit test vbr https://www.youtube.com/watch?v=SLP9mbCuhJc

解碼過程可能仍然適用于較低的 VBR,這完全取決于所使用的設(shè)置。使用比默認(rèn)的 1080p 更高的分辨率并沒有真正的優(yōu)勢。

為什么我不能使用分辨率 x?

從技術(shù)上講,YouBit 可以處理任何分辨率的視頻,但是不支持低于 1920x1080 的分辨率,因?yàn)?YouTube 分配給它們的比特率并不總是適合我們的用例。它還引入了不一致,因?yàn)?YouTube 可能會根據(jù)分辨率使用不同的、性能較低的編解碼器。支持高于 1080p 的分辨率,但通常不應(yīng)使用。

我的文件可以有多大?

YouBit 以塊的形式對你的文件進(jìn)行編碼,因此我們不受內(nèi)存限制,但我們受到 YouTube 最大視頻長度的限制。YouTube 視頻最長允許 12 小時或 128GB。如果違反其中任何一個,YouBit 將在編碼過程中引發(fā)異常。如果你使用的 YouTube 帳戶未經(jīng)過驗(yàn)證,則限制為 15 分鐘。請務(wù)必驗(yàn)證你的帳戶。

為什么不上傳無損視頻?

如果我們希望我們的數(shù)據(jù)保持完整,那么在本地壓縮視頻(在 YouTube 再次壓縮之前)似乎是一個非常糟糕的主意。但是,文件大小的差異非常大。一旦編碼過程相當(dāng)有效,將視頻上傳到 YouTube 所需的時間就成為迄今為止最大的瓶頸。如果我們仔細(xì)控制我們在本地進(jìn)行的壓縮量,可以使我們的視頻更小(上傳速度更快),而不會影響數(shù)據(jù)完整性。

Git 倉庫:https://github.com/MeViMo/youbit。

責(zé)任編輯:姜華 來源: Github愛好者
相關(guān)推薦

2021-07-15 16:43:04

Swift函數(shù)KeyPaths

2022-07-20 23:08:55

互聯(lián)網(wǎng)業(yè)務(wù)EDAC設(shè)備故障

2014-05-19 16:31:39

京東云

2015-07-08 09:19:56

HaaSHadoop即服務(wù)云端Hadoop

2017-06-07 11:55:27

互聯(lián)網(wǎng)

2022-01-17 10:37:49

YouTube-DL唱片公司索尼

2022-08-02 13:32:24

Linux瀏覽器代碼

2012-07-25 09:40:56

無線上網(wǎng)免費(fèi)無線

2023-07-05 16:02:04

開發(fā)后端工具

2009-08-07 13:22:04

服務(wù)器托管

2020-05-18 10:33:53

云計算提供商冠狀病毒

2011-06-24 16:44:15

Azure微軟云服務(wù)

2022-05-23 08:00:00

Windows 11虛擬機(jī)操作系統(tǒng)

2021-11-16 12:25:14

jsPPT前端

2011-06-27 09:22:13

微軟Azure云服務(wù)

2012-01-17 09:03:06

IBM云托管協(xié)作

2013-06-13 09:14:26

Windows AzuWindows Azu云服務(wù)

2021-12-28 05:52:34

安全托管服務(wù)供應(yīng)商客戶體驗(yàn)

2015-09-14 09:34:37

Docker本地開發(fā)開發(fā)環(huán)境

2022-11-16 08:33:29

監(jiān)聽Spring監(jiān)聽器
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號