ffmpegのストリーム収録でパケットロスを無くす!

最終更新日

ffmpegのPathを通さない運用方法

Pathを通すのが面倒くさいので、私は以下のような運用にしています。

  • ffmpegのZipをダウンロード、展開
  • できたフォルダをffmpegとリネームしCドライブに置く
  • コマンドプロンプトでは”C:\ffmpeg\bin\ffmpeg.exe”と記述し、exeを起動

パケットロスの抑制

ストリームをファイル化するときに、パケットロスがパラパラ出る方は以下の一文を足してみてください。

-rtsp_transport tcp

以下、上記の要素を取り入れたファイル化.cmd例文です。

  • 192.168.0.xxのRTSPストリームを
  • 2時間5分
  • フレームレートは入力追従
  • エンコードはせずコピーで
  • Dドライブのフォルダ「VTR_1080」に
  • ClipA_年月日_時分.mp4というファイルを作るスクリプトです。
  • ストリームはH.264でエンコードされたもので実験しています。
  • ストリームからファイルにコピーするだけの超軽量処理なので、複数走らせてもびくともしません。
@echo off
echo %date%
echo %time%
 
set yyyy=%date:~0,4%
set mm=%date:~5,2%
set dd=%date:~8,2%
set time2=%time: =0%
set hh=%time2:~0,2%
set mn=%time2:~3,2%
set ss=%time2:~6,2%
echo Now Recording
"C:\ffmpegm\bin\ffmpeg.exe" -y -re -rtsp_transport tcp -i rtsp://192.168.0.xx/input1/h264/stream_1 -vcodec copy -acodec copy -t 02:05:00 D:\VTR_1080\ClipA_%yyyy%%mm%%dd%-%hh%%mn%.mp4

おまけで、再生するときです。こちらもいろいろオプションあるので探してみてください。-fsはフルスクリーン起動です。

"C:\ffmpeg\bin\ffplay.exe" -fs -rtsp_transport tcp rtsp://192.168.x.xx/inputA/h264/stream_1

BB1100

コメントを残す

メールアドレスが公開されることはありません。

コメントする