2017-11-22 14 views
1

私たちはm4aオーディオファイルを持っています。コンテナストリームはmpeg-4、オーディオストリームはAACです。作品が欠けている場合、どのようにm4a/aacオーディオファイルを再生するのですか?

2つのシステム間で、このファイルを分割して送信します(ランダムに分割し、サイズ制限を設け、それらのバイトを送信する)。

ピースが送信されない場合は、ピースを再構成して、少なくともその一部を再生できるようにしますか?

私が今までに見つけたのは、ファイルを分割して送信すると、すべての部分があればそれを再構成できますが、作品を残しておけばオーディオツールは認識しませんまたはそれを再生することができます。

これを行う正しい方法は何ですか?すべての作品が必要な場合、m4aはストリーミング可能なフォーマットとはどのようになっていますか?

編集:限定されたIoTデバイスでオーディオを録音し、後で再生するために録画をクラウドに送信していることを明確にする。最大アップロードサイズは128kbです。生のオーディオを最初は多くの小さなm4aファイルに保存してアップロードするだけで、各ファイルのすべてのメタデータがそこにあるわけではありません。私たちが分割した1つの30s m4aファイルではなく、30sのオーディオを10個、3s m4aファイルに保存したいのですか?

+0

UDPを使用していますか?あなたのTCPを使用している場合、なぜ欠けている部分がありますか? –

+0

実際にmqttを使用していますが、それは関係ありません。インターネットがダウンし、再試行ポリシーが失敗する可能性があります。とにかく、欠けているかもしれない、あるいは少なくとも私はそれを説明したいと思っています。 – Fraggle

答えて

1

あなたのMPEG-4(m4a)コンテナからAACストリームを抽出し、AACをADTS(オーディオデータトランスポートストリーム)に入れます。 ADTSは小さなフレームから構成され、各フレームにはAACオーディオデータ(MP3ストリームに類似)が続くヘッダーがあります。 ADTSは自己同期型で、パケット損失のために設計されています。

+0

私たちがクライアント側でそれを行うことができるかどうかはわかりません。私たちには限界があります。しかし、私は調査することができます。それで、欠落しているm4aを再構成するという私の元々の質問に対する答えは、「不可能です、別のエンコーディング/コンテナ形式を使用するか、各チャンクを完全なm4aファイルとして保存する」ですか? – Fraggle

+1

AAC/M4AをADTSに変換すると、再エンコードする必要はありません。 –

+0

@Fraggleあなたはこのクライアント側をしません、あなたはこのサーバー側を行います。 ADTSのようなものがなければ、ストリームを任意に再構成することはできません。 – Brad

関連する問題