コンピューターに video_2.m4v というファイルがあり、別のプログラムがそこにデータ (ビデオ) を書き込むために使用しているため、ファイル サイズが毎秒増加しています。私がやりたいことは、ストリーミング アップロードのようなものを作成することです。ファイルが書き込まれている間、サーバーにアップロードされます。Windows 7でこのbashスクリプトを使用しています:
@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