Video/Xacti

Xactiのmp4

SANYOのXactiで撮影した映像(mp4)をQuickTime以外で再生すると,画面の左上4分の1のみが再生される.例えばMPlayerでVGA(640x480)の映像を再生すると次の解析情報が出力される.

Playing VCLP0144.MP4.
ISO: File Type Major Brand: ISO/IEC 14496-1 (MPEG-4 system) v2
Quicktime/MOV file format detected.
[mov] Video stream found, -vid 0
Warning! pts=1672192  length=1672070
[mov] Audio stream found, -aid 1
[mov] Subtitle stream found, -sid 2
[mov] Subtitle stream found, -sid 3
VIDEO:  [mp4v]  320x240  24bpp  29.970 fps    0.0 kbps ( 0.0 kbyte/s)

ビデオサイズ320x240で認識されているようだ.

原因調査

ビデオストリームのヘッダに誤った情報が書き込まれているためと思われる.ヘッダの情報を調べてみると,それらしきデータが発見された.

 offset    0  1  2  3   4  5  6  7   8  9  a  b   c  d  e  f
--------------------------------------------------------------
000001a0  76 00 00 00  00 00 00 00  01 00 00 00  00 00 00 00
000001b0  00 00 00 00  00 00 00 00  00[01 40 00  f0]00 48 00
000001c0  00 00 48 00  00 00 00 00  00 00 01 00  00 00 00 00

320x240 は16進数で140xF0なので,1b9アドレス以降の4バイト[01 40 00 f0]がかなり怪しい.

対処

問題の4バイトを640x480に相当すると思われる[02 80 01 e0]に修正し再度再生してみた.

Playing VCLP0144.MP4.
ISO: File Type Major Brand: ISO/IEC 14496-1 (MPEG-4 system) v2
Quicktime/MOV file format detected.
[mov] Video stream found, -vid 0
Warning! pts=1672192  length=1672070
[mov] Audio stream found, -aid 1
[mov] Subtitle stream found, -sid 2
[mov] Subtitle stream found, -sid 3
VIDEO:  [mp4v]  640x480  24bpp  29.970 fps    0.0 kbps ( 0.0 kbyte/s)

ビンゴ!! 640x480 で再生された.もちろん映像の方も正常.
googleってみるとVideoLAN Forumsで同じ症状が報告されているのを見つけた.そこではMP4Boxで映像ファイルをRemuxする方法が紹介されている.正確にはこのようにRemuxする方が好ましく,安全なのかもしれない.

MP4Box -isma -add VCLP0144.MP4 VGA_VCLP0144.MP4



---
update at 2018/03/02 22:04:51

※注:当サイトは特定環境において確認できた事象のみを記述しています。他の環境での動作は一切保証しません。