YouTubeに似たサービスを構築しています。また、別の投稿のこのスクリプトを使用して、ffmpeg で変換を正常に実行できます。
#!/bin/bash
pipe=/tmp/ffmpeg
trap "rm -f $pipe" EXIT
# creating the FIFO
[[ -p $pipe ]] || mkfifo $pipe
while true; do
# can't just use "while read line" if we
# want this script to continue running.
read line < $pipe
# now implementing a bit of security,
# feel free to improve it.
# we ensure that the command is a ffmpeg one.
[[ $line =~ ^ffmpeg ]] && bash <<< "$line"
done
名前付きパイプに1つずつ送信すると、これはかなりうまく機能します。同時に複数を送信すると、2番目の端末は最初の端末が終了した時点まで端末をキューに入れます。2 回以上試行すると、3 回目はトランスコードされません。
だから私は端末を解放するためにバックグラウンド送信で回避しようとしました(エコーコマンドをドロップしてssh接続を閉じるだけです)が、これはうまくいきません。誰かがこれに対処する良い考えを持っているかもしれません。
私がやりたいことは次のとおりです。トランスコードに必要なすべてのアップロードされたビデオは、名前付きパイプにエコーを送信します。FIFO は一致する必要がありますが、端末をブロックしてはなりません。だから私は実際にffmpeg入力をキューに入れるために何かが必要だと思います。
よろしくフランソワ