ブログ

AVコーデックミドルウェアでの動画再生が失敗する

at_takuya.sasaki
2015年6月21日 16時28分

Armadillo-840でFullHD(1920x1080)のH.264動画を再生しようと試みましたが、以下のメッセージが出力されて、再生されませんでした。

[root@armadillo840-0 (ttySC2) ~]# gst-launch-1.0 filesrc location=/mnt/big-buck-bunny-30sec-fullhd.mp4 ! \
qtdemux ! queue ! acmh264dec ! acmfbdevsink 
 
Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
ERROR: from element /GstPipeline:pipeline0/GstAcmH264Dec:acmh264dec0:
Could not decode stream.
Additional debug info:
gstacmh264dec.c(1382): gst_acm_h264_dec_handle_frame ():
/GstPipeline:pipeline0/GstAcmH264Dec:acmh264dec0:
timeout with select()
ERROR: pipeline doesn't want to preroll.
Setting pipeline to NULL ...
Freeing pipeline ...

マニュアルにも記述があるのですが、上記メッセージはFullHDの動画を、FullHD未満の解像度のディスプレイで再生しようとした場合に出力されます。
https://manual.atmark-techno.com/armadillo-840/armadillo-840_product_manual_ja-1.5.1/ch06.html#sec-acm-hdmi

まずは、現在のディスプレイの解像度を確認してみましょう。

[root@armadillo840-0 (ttySC2) ~]# cat /sys/class/graphics/fb0/mode
U:1680x1050p-60 

上記の場合、1680 x 1050 ですので、以下のように解像度を指定して、動画を再生してみてください。

[root@armadillo840-0 (ttySC2) ~]# gst-launch-1.0 filesrc location=/mnt/big-buck-bunny-30sec-fullhd.mp4 ! \
qtdemux ! queue ! acmh264dec \
! video/x-raw,width=1680,height=1050 ! acmfbdevsink 

以上