scripts/shell/record_video.sh
プロジェクトの 1 つを呼び出す必要があるシェル スクリプトが保存されています。
コードでの使用例:
(defn save-mp4 [cam filename duration]
(sh "scripts/shell/record_video.sh" (:i_url cam) filename (str duration)))
clojars にアップロードする場合にシェルスクリプトが含まれるように、プロジェクトを jar するにはどうすればよいですか?
ファローアップ
ありがとう@Ankur。は(sh "bash" :in bash-command-string)
超便利です。そもそもファイルが必要だった唯一の理由は.sh
、stdout に大きなもの (ビデオなど) が含まれている場合にリダイレクトを行う方法がよくわからなかったためです。
ファイルscripts/shell/record_video.sh
には次が含まれます。
SRC=rtsp://$1:554/axis-media/media.amp?resolution=1920x1080
DST=$2
LEN=$3
openRTSP -4 -d $LEN -w 1440 -h 1080 -f 25 -u root pass $SRC > $DST 2> /dev/null
>
また、プログラムのメモリ消費量を膨大にせずにリダイレクト ( ) を変換する方法がわかりませんでした。この(sh "bash" :in bash-command-string)
コマンドを使用すると、シェル スクリプトを使用せずに関数を記述できます。
(defn save-mp4 [cam filename duration]
(let [src (format "rtsp://%s:554/axis-media/media.amp?resolution=1920x1080" (:i_url cam))
cmd (format "openRTSP -4 -d %d -w 1440 -h 1080 -f 25 -u root pass %s > %s 2> /dev/null"
duration src filename)]
(sh "bash" :in cmd)))