ブログ

Armadillo-840:ネットワーク経由の音声のリアルタイムストリーミング

at_kazutaka.bito
2017年12月1日 16時04分

Armadillo-840を2台使用して、Armadillo-840同士で、ネットワーク経由の音声のリアルタイムストリーミングを確認してみました。

音声入力側
・マイクから音声入力。
・音声をAACでエンコード。
・MPEG2-TSにマルチプレクス。
・LAN経由でUDPで送信。

音声出力側
・LAN経由でUDPで受信。
・MPEG2-TSをデマルチプレクス。
・音声のAACをデコード。
・スピーカから音声出力。

音声入力側と音声出力側のArmadillo-840同士をLANで接続します。
以下、音声入力側、音声出力側、それぞれのArmadillo-840での手順です。

音声入力側

1.オーディオエンコーダのファームをロードします。
========================================================================
echo encoder > /sys/devices/platform/acm.0/codec
========================================================================
2.音声を入力したいオーディオデバイスの番号(card *)を確認します。
========================================================================
arecord -l
========================================================================

(一例として、開発セットの拡張ボードのマイク入力を使用する場合、
 card 1: FSI2AWM8978 [FSI2A-WM8978], device 0: wm8978 wm8978-hifi-0 []
 より、オーディオデバイスの番号は、“1”を意味します。)

3.オーディオストリーミング(送信)の開始します。
========================================================================
gst-launch-1.0 -q -e alsasrc device="hw:1" \
! audio/x-raw,format=S16LE,layout=interleaved,rate=48000,channels=2 \
! acmaacenc \
! aacparse \
! audio/mpeg, mpegversion=4, stream-format=raw\
! mpegtsmux \
! rtpmp2tpay \
! udpsink force-ipv4=true port=9003 host=192.168.11.37
========================================================================

補足)hw:1の"1"は、上記2のオーディオデバイスの番号に合わせます。
host=192.168.11.37は、送信先のIPアドレスに合わせます。

音声出力側

1.オーディオデコーダのファームをロードします。
========================================================================
echo decoder > /sys/devices/platform/acm.0/codec
========================================================================
2.音声を出力したいオーディオデバイスの番号(card *)を確認します。
========================================================================
aplay -l
========================================================================

(一例として、開発セットの拡張ボードのヘッドホン出力を使用する場合、
 card 1: FSI2AWM8978 [FSI2A-WM8978], device 0: wm8978 wm8978-hifi-0 []
 より、オーディオデバイスの番号は、“1”を意味します。)

3.オーディオストリーミング(受信)の開始
========================================================================
gst-launch-1.0 -v udpsrc port=9003 caps=application/x-rtp,media=video,clock-rate=90000,encoding-name=MP2T \
! rtpmp2tdepay \
! tsdemux \
! aacparse \
! queue max-size-buffers=20000 \
! acmaacdec \
! alsasink device=hw:1
========================================================================

補足)hw:1の"1"は、上記2のオーディオデバイスの番号に合わせます。
port=9003は、送信元のポート番号に合わせます。