MJPEG(Motion-JPEG)再生ソフトを作ったので公開します

MJPEG(Motion-JPEG)のデータファイルを再生したいという変わった人は少ないのか、まともな再生ソフトが無かったので作ってみました。


ダウンロード

MJPEG DataFile Player

MJPEGDataFilePlayerダウンロード

github: https://github.com/znote1234/MJPEGDataFilePlayer

Windows10 .Net Framework 4以上の環境なら大体動くと思います。

MJPEGデータファイル中からJPEG画像を探して、任意のフレームレートで連続して描画してるだけです。
無理やり描画しているのでデータやPCによっては任意のフレームレートにならないと思います。
私がUSBカメラからv4l2-ctlコマンドで取得したMJPEGデータファイル本体にはフレームレートが入っていないようなので、フレームレートは自分で指定します。 また任意のフレームのJPEG画像をファイル保存できるようにしています。


MJPEG(Motion-JPEG)とは

MJPEG(Motion-JPEG)とは動画圧縮形式の一つです。名称が似てますがMPEGとは全く別物です。

MPEGとは異なり、フーレーム間の圧縮はせず、JPEG画像をパラパラ漫画のように連続して表示するものです。

1990年代頃によく使われていた方式のようで、他の動画圧縮方式と比べて処理が軽く、低スペックなシステムでもよく動くようです。またフレーム間の圧縮をしないので、1フレーム単位で割と綺麗に取り出せる為、工業用途に向いているとのこと。

その為現在でもUSBカメラ等はMJPEG形式での出力に対応しているものが多いです。


フォーマット・規格について

MJPEG(Motion-JPEG)は正式なフォーマット・規格が存在せず、メーカー毎に仕様が異なる場合があるとの事。

私の知る限りでは、MJPEGデータの中には必ずJPEGデータがまるごと、連続して入っています。また、実際USBカメラからv4l2-ctlで録画したMJPEGデータを解析してみましたが、ファイルの先頭からJPEGデータが連続して存在しているだけで、フレームレート等の情報は全く入っていませんでした。

コメント

このブログの人気の投稿

v4l2-ctlで行うUSBカメラ設定方法まとめ

【Windows11】簡単にできるRaspberry Pi Pico 開発環境構築 (VSCode, C言語, PicoProbe)

【Raspberry Pi Pico】Flashメモリの空き領域に設定値保存 (C/C++)