録画終了後、ffmpegでエンコードしてGoogle フォトに無限保存
- 2019.04.11
- 環境情報

タイトル通り、EDCBで録画が終了したらtsファイルをmp4にエンコードして、Google フォトへ自動的にアップロードする方法です。
こちらのサイトに具体的な方法が記してありますので、私がカスタマイズした箇所だけ掲載します。
カスタマイズした箇所
- ffmpegのエンコードオプション
- 番組情報ファイルの自動削除
- エンコードを深夜に実行
ffmpegのエンコードオプションが複雑過ぎたので、シンプルに纏めてみました。
1 2 3 4 |
function VideoEncode { #hevc_nvenc constqp (qpI,P,Bはtsファイルサイズ判別を参照) Invoke-Process -File "${ffpath}\ffmpeg.exe" -Arg "-y -hide_banner -nostats -analyzeduration 30M -probesize 100M -fflags +discardcorrupt -i `"${env:FilePath}`" -s 1280x720 -vcodec libx264 -acodec aac ${ArgPid} `"${tmp_folder_path}\${env:FileName}.mp4`"" } |
番組情報ファイルは、エンコードが終わったら不要なので削除します。
1 2 |
#番組情報ファイルを削除 Remove-Item -LiteralPath "${env:FilePath}.program.txt" -ErrorAction SilentlyContinue |
録画の少ない深夜にエンコードする設定
1 2 3 4 5 6 7 8 9 10 11 12 |
#深夜電力を有効に利用するため、3時以上、8時未満の時間にエンコードを実行する while( $EncodeFlag ){ #現在の時間を取得する $EncodeHour = ( Get-Date ).Hour if( ( $EncodeHour -ge 3 ) -And ( $EncodeHour -lt 8) ){ $EncodeFlag = $FALSE }else{ #300秒待つ Start-Sleep -s 300 } } |
以上です。
これでHDDが壊れても録画した番組のバックアップが取れるし、なにより、Google フォトにmp4があるので外出先からでもスマホで番組を見ることができてハッピー♪
ファイルをGitHubに置いておきましたので、良かったら参考にしてください。
https://github.com/ryohei-ochi/EDCB-Customize/blob/master/PostRecEnd.ps1
-
前の記事
分配器について 分解編 2019.02.16
-
次の記事
Google Photos APIで動画を検索する 2019.04.23