動画再生

本プレイヤーの目玉(?)機能です。
非圧縮動画に比べると1/10くらいまでサイズが節約できるので大容量SDカードをつかえば映画がまるまる数本入れられたりします^^
シーク機能もついているので長い動画も途中から再生することができます。

tom.png

対応コンテナ QuickTimeムービー (MOVコンテナ)
ビデオコーデック Motion JPEG
ビデオサイズ 〜320x240(QVGA)
音声 リニアPCM 量子化精度:8/16bit チャンネル数:1または2 標本化周波数:〜48KHz
最大ビットレート 3200kbps@CPU_FREQ:250MHz
最大フレームレート 30fps@QVGA 60fps@QCIF


再生可能な動画ファイルを出力する方法


GUIツールを使って出力する

exporting.png
下記コマンド入力で出力するのは結構骨の折れる作業なのでGUIコマンドラッパーツールをつくりました。Win・Mac・Linux対応
詳しくはコチラ→Movie Exporter

コマンドから出力する


UNIX環境(WinだとCygwin等)とFFmpegのコマンドライン入力が必要になります。

また、FFmpegで出力したファイルは仕上げにMP4Boxというコマンドを使って動画データと音声データのブロックを等間隔に交互に配置(インターリーブ再配置)する必要があります。

バージョンによってオプション名や指定の仕方が違ったりするので注意が必要。
以下ffmpeg version 0.7.11を使用してます。

出力例

  • 例1)ビデオサイズが16:9の動画をアスペクト比(縦横比)を保ったままQVGAサイズに収める。コーデックはMotionJPEG。

>ffmpeg -i infile.mp4 -vcodec mjpeg -vf "scale=320:180,setdar=16:9" -r 30 -bt 1800k -b 1800k -pix_fmt yuvj420p \
-ar 44100 -ac 2 -acodec pcm_s16le -sample_fmt s16 outfile.mov

>MP4Box -inter 500 outfile.mov

ビデオ
サイズ 320x180 (16:9)
フレームレート 30fps
ビットレート 1800kbps

音声
量子化精度 符号付き16bitリトルエンディアン
チャンネル数 ステレオ
サンプリングレート 44.1kHz

  • 例2)コーデックが非圧縮の場合

>ffmpeg -i infile.mp4 -vcodec rawvideo -vf "scale=320:180,setdar=16:9" -r 30 -pix_fmt rgb565le \
-ar 44100 -ac 2 -acodec pcm_s16le -sample_fmt s16 outfile.mov

>MP4Box -inter 500 outfile.mov

ビデオ
サイズ 320x180 (16:9)
フレームレート 30fps
ビットレート 27648kbps

音声
量子化精度 符号付き16bitリトルエンディアン
チャンネル数 ステレオ
サンプリングレート 44.1kHz

なんかおかしい

映像が乱れる場合

slow.jpeg
本プレイヤは音声優先で動画再生されるようにしているためフレーム表示の遅延時間内にJPEGデコードが終了しない場合は途中で打ち切って次のフレーム処理に取りかかるようにしています。
この場合上の画像のように現在のフレームの描画が途中で途切れ、前フレームの映像が残っています。
この問題を解決するにはCPUのクロックアップ、SDカードのアクセス幅を4bitにする、動画変換時のビデオビットレートやフレームレートを下げる等の方法があります。

  • てすと --- とんすけ@主 (2013/04/06 07:40:18)

コメントを投稿するには画像の文字を半角数字で入力してください。

投稿済みコメントに返信する場合はコメントを選んでから投稿してください。


画像認証

  • 最終更新:2014-03-06 19:02:15

このWIKIを編集するにはパスワード入力が必要です

認証パスワード