at_ito
2018年2月5日 4時51分
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出ない場合はスクリプトを変更してください。