![如何將網路檔案輸入到ffmpeg中](https://rvso.com/image/52089/%E5%A6%82%E4%BD%95%E5%B0%87%E7%B6%B2%E8%B7%AF%E6%AA%94%E6%A1%88%E8%BC%B8%E5%85%A5%E5%88%B0ffmpeg%E4%B8%AD.png)
我的問題是這樣的。我可以訪問託管許多視訊檔案的伺服器,其中大多數檔案都非常大且壓縮得不好。我打算在本地電腦上製作這些內容的品質降低的較小尺寸副本,以便更好地存取。
問題是伺服器沒有ftp存取權限。我可以將檔案 scp 到我的機器上,然後使用 ffmpeg 來減小大小,但如果我將所有檔案複製到本機,我將耗盡空間。
我正在尋找一種直接將網頁檔案輸入到 ffmpeg 的方法,這樣我就能夠編寫一個腳本,讓我在一夜之間獲得所有縮小尺寸的影片。
答案1
您可以使用sshfs
使遠端檔案出現在本機上的目錄中。
您沒有說明您在客戶端上使用的是什麼發行版,但這是抄襲自Ubuntu sshfs 文檔:
- 安裝
sshfs
包 (aptitude install sshfs
) - 將您的使用者新增至
fuse
群組 (sudo gpasswd -a username fuse
) 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