我在我的計算機上有一個名爲video_2.m4v的文件,該文件正在被另一個程序用來在那裏寫入數據(視頻),因此文件大小每秒都在增加。我想要做的就是做一個流式上傳: 當文件被寫入時,它會將其上傳到服務器。我使用這個bash腳本在Windows 7下:可以使用當前正在使用的FTP流文件嗎?
@echo off
echo user USER_NAME> ftpcmd.dat
echo PASSWORD>> ftpcmd.dat
echo bin>> ftpcmd.dat
echo cd ROOT_PATH>> ftpcmd.dat
echo put %1>> ftpcmd.dat
ftp -n -s:ftpcmd.dat ftp.example.com
del ftpcmd.dat
這工作得很好,但它抓住了當前文件的狀態(大小),只是上傳它。請不要告訴我我需要使用RTMP服務器:)。
VLC實際上做我想要的,但我不能切換到二進制模式。 我使用下面的代碼:
set VLC_EXE=C:\Program Files (x86)\VideoLAN\VLC\vlc.exe
set SOUT_FTP_DOMAIN=ftp.example.com
set SOUT_FTP_PORT=21
set SOUT_FTP_USERNAME=user
set SOUT_FTP_PASSWORD=password
set SOUT_FTP_PATH=www/example.com
set SOUT_FILENAME=test
"%VLC_EXE%" D:\video_1.m4v :sout=#std{access=ftp,mux=mp4,dst=ftp://%SOUT_FTP_USERNAME%:%SOUT_FTP_PASSWORD%@%SOUT_FTP_DOMAIN%:%SOUT_FTP_PORT%/%SOUT_FTP_PATH%/%SOUT_FILENAME%.mp4} :sout-keep vlc://quit
感謝您的詳細解答。我同意,我想用非標準的內部系統工具來實現這樣的事情是非常困難的。 –
@AndyFenton只是一個說明:在StackOverflow上,如果您得到滿意的答案,您可以接受它 - 詳情請參閱http://meta.stackexchange.com/a/5235/153597。 –