如何將網路檔案輸入到ffmpeg中

如何將網路檔案輸入到ffmpeg中

我的問題是這樣的。我可以訪問託管許多視訊檔案的伺服器,其中大多數檔案都非常大且壓縮得不好。我打算在本地電腦上製作這些內容的品質降低的較小尺寸副本,以便更好地存取。

問題是伺服器沒有ftp存取權限。我可以將檔案 scp 到我的機器上,然後使用 ffmpeg 來減小大小,但如果我將所有檔案複製到本機,我將耗盡空間。

我正在尋找一種直接將網頁檔案輸入到 ffmpeg 的方法,這樣我就能夠編寫一個腳本,讓我在一夜之間獲得所有縮小尺寸的影片。

答案1

您可以使用sshfs使遠端檔案出現在本機上的目錄中。

您沒有說明您在客戶端上使用的是什麼發行版,但這是抄襲自Ubuntu sshfs 文檔:

  1. 安裝sshfs包 ( aptitude install sshfs)
  2. 將您的使用者新增至fuse群組 ( sudo gpasswd -a username fuse)
  3. sshfs使用命令掛載檔案系統

要使用sshfs,請為自己建立目錄(我們稱之為/mountpoint),然後執行

sshfs -o idmap=user remote_user@remote_server:/remote/directory /mountpoint

遠端檔案現在將出現在 中/mountpoint,但實際上仍在遠端伺服器上。您所做的任何更改都將遠端進行,而不是本地進行。

若要卸載目錄,請執行下列操作

fusermount -u /mountpoint

答案2

如果您可以透過 ssh 存取遠端系統,您可以執行類似的操作

ssh server cat path/to/video | ffmpeg -i - [...]

-導致 ffmpeg 從標準輸入而不是檔案讀取。

但要注意的是,並非所有格式都支援管道。看https://stackoverflow.com/questions/12999674/ffmpeg-which-file-formats-support-stdin-usage

相關內容