監視カメラの録画ファイルは
5分の動画が12個x無限に生成される感じになっている。
監視カメラのONVIF機能、QNAPのSurveillance録画するやつで録画されるが、これをエンコードしたい
(本当はそのままの録画ファイルをpython処理できたらよかったが、なぜかできない)
ffmpegではなぜかエンコードできなかったのでHandBrakeでエンコードする。
実践
#!/bin/bash FILENAME=./enc_mp4/${1%.*}.mp4 CMD="HandBrakeCLI --input $1 --x264-preset fast -f mp4 -o $FILENAME" eval $CMD
こういうスクリプトを用意して、実行権限を付けておく。
動画ファイルがあるディレクトリに置く、enc_mp4フォルダを作っておく。
実行時間を簡易的に数えておきたいので、
SECONDS=0; ls *avi | xargs -I{} encode_avi.sh {}; echo $SECONDS
とかやってみる。
途中経過。240fps出ているらしい
HandBrake内部での処理が並列化されている
CPU処理的にはまだ余裕がある?
Encode done! HandBrake has exited. 387
5分の動画12個をエンコードするのに、6分20秒≒6.3minかかった。
並列化
意味があるかわからないが、とりあえずやってみる
SECONDS=0; ls *avi | xargs -P 4 -I{} ./encode_avi.sh {}; echo $SECONDS
さっきより100%に張り付いている
90fps ~ 80fpsになっている(4並列で)
Encode done! HandBrake has exited. 271
5分の動画12個をエンコードが4分30秒で終わった。