OrangeGardenRoom

Just another WordPress site

ストリーミングなMotionJPEGをMP4にする

メモ程度に。

 

AXISやPanasonicのカメラからの出力を取る方法。

 

【MJPG動画取得方法】

wgetでもいいけど、SIGINTなりSIGTERMとか出さないといけなさそうで、

並列処理させるのめんどくさそうだったので、時間制限かけれるの使いたい。

curl使えそうだったので使います。

 

curl -o test.mjpg “http://192.168.1.200/nphMotionJpeg?Resolution=640×320&Framerate=10” -u administrator:password -m 10

 

-uでBASIC認証のユーザ名とパスワード設定

-mで最大接続時間の設定。

10秒間取得、ではないのだけど、とりあえずこれで問題ないかなと。

 

 

 

【動画エンコード】

avconvとか使ってみたけどなんかダメで、ffmpeg使うことに。

fps(Framerate)合わせないと、早送りになったり、画像動かなかったりで。

 

ffmpeg -r 10 -i test.mjpg -r 10 -b 1000k -vcodec libx264 test.mp4

 

-iは入力動画指定。

1個目の-r 10で入力動画フレームレートを10fpsに。

2個目の-r 10で出力動画フレームレートを10fpsに。

-b 1000kはビットレートを1000kbps(1Mbps)に。(大きすぎ?)

-vcodec libx264でコーデックをx264にする。

 

flvにする場合は、-vcodec libx264省いて、そのままtest.flvって指定。

 

 

 

 

 

以下それまでの失敗

 

ffmpeg -i test.mjpg -r 1 -b 1000k test.flv

→失敗早送りになる(5秒動画)

 

 

curlのURLにFramerate設定無し

→カメラ側の設定フレームレートになるらしく値わかんなくてダメ。

 

 

ffmpeg -i test.mjpg -b 1000k test.flv

→普通に早送りになる 何もしないとデフォfps使うらしい

 

 

avconv -i test.mjpg -r 0.1 test.flv

→これで動画が10秒になった!と思ったのも束の間、動画が一切動かない

 

 

avconv -i test.mjpg test.flv

→デフォのfps25でやるので、バリ早再生

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です