ブログ

Armadillo-840: カメラで撮影した動画を保存しながらLCDに表示する方法

at_ito
2018年2月5日 4時51分
(function(w,d,url,a,s,e){ w[a]= (w[a]||[]); s = d.getElementsByTagName('script')[0];e = d.createElement('script');e.src=url;e.async=1;s.parentNode.insertBefore(e,s); })(window,document,'//ec-concier.com/28656ffd9dd0b0b8/analytics.js','ara'); ara.push(['init', '28656ffd9dd0b0b8']);

Armadillo-840でカメラの画像を表示しながら、SDカード等のストレージにH.264でエンコードして保存したい場合があるかと思います。その場合はGStreamerのコマンドで対応できます。

ここではGStreamerを使用してカメラ画像を表示しながらSDカードへ動画ファイルを保存する方法を紹介します。

サンプルスクリプト

以下のようなサンプルスクリプトをArmadillo上で作成し、実行してください。

echo encoder > /sys/devices/platform/acm.0/codec
 
sleep 3
 
gst-launch-1.0 -e v4l2src device=/dev/video0 \
! video/x-raw,format=NV12,width=640,height=480,framerate=30/1 \
! tee name=t \
t. ! queue ! videoconvert ! fbdevsink device=/dev/fb1 \
t. ! queue \
! acmh264enc bitrate=1000000 b-pic-mode=2 \
! queue ! qtmux ! filesink location=/root/output.mp4

※: カメラのデバイスファイルが/dev/video0でない場合はスクリプトを変更してください。
※: フレームバッファが/dev/fb1出ない場合はスクリプトを変更してください。