2017-10-27 7 views
1

ビデオとオーディオの2つのストリームを含むAVIファイルが与えられました。
オーディオはPCM符号で符号化されています。オーディオチャンネルが改ざんされているかどうかはどのように知ることができますか?

特定の時間間隔で、音声はミュートされます。
私は、オーディオを意図的にソフトウェアでミュートしていたのか、おそらく信号がなくなったのかを理解しようとしています。

ffprobe私は、サイレンスされた時間間隔で、データパケットがすべてゼロであることを発見しました。ここ

は、その時間間隔と(音含む)その隣接パケットの一般的な例である:

[PACKET] 
codec_type=audio 
... (trimmed for clarity) 
size=1152 
flags=K 
data= 
00000000: <arbitrary NON-zero data> 
... (trimmed for clarity) 
00000470: <arbitrary NON-zero data> 
[/PACKET] 

[PACKET] 
codec_type=audio 
... (trimmed for clarity) 
size=2048 
flags=K 
data= 
00000000: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 
... Similar rows as above (data is zero), only difference is with the data offset 
000007f0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 
[/PACKET] 

<More packets with data equal to zero> 

[PACKET] 
codec_type=audio 
... (trimmed for clarity) 
size=2048 
flags=K 
data= 
00000000: <arbitrary NON-zero data> 
... (trimmed for clarity) 
00000470: <arbitrary NON-zero data> 
[/PACKET] 

パケットのサイズを交互1152及び2048

間でIは、IFと仮定します無音は信号消失によるものであり、ゼロバイトは無音が始まる最初のパケットのどこにでもを開始していたはずであり、必ずしもパケットの先頭である必要はない。

また、オーディオエディタプログラムでは、オーディオをパケットで消音するとします。つまり、ではありません。パケットの途中でデータバイトを無効にしようとしますが、パケット。

経験があり、追加の洞察を確認/提供できる人はいましたか?

答えて

1

あなたの前提がどこから来たのだろうか。特に、フローティングパケットサイズは、オーディオフレームのサイズがビデオフレームのサイズと一致していないことを示します。これは、想定していないことを示しています。 PCMオーディオがあるので、ビデオフレームに合わせたオーディオのバイト数は常に同じです。ラッパー/パケッタイザーを設定して、オーディオパケットサイズをビデオパケットサイズに合わせることができます。しかし、それはあなたのためのケースではないようです。

次は非常にご使用の環境によっては、それはあなたにいくつかのアイデアを与えるかもしれないです:。

編集プログラムは、Premiere ProのかFCP Xと共同のような典型的なビデオエディタであれば、それはオーディオとビデオを整列しますフレームを内部的に使用し、エディタが1つのフレームの部分だけを変更することを許可しません。これは、何らかの意図的な無音がある場合、単一のビデオフレームの継続時間の倍数に正確に一致することを意味する。

「信号損失」の場合、実際にパケットが欠落する代わりにオーディオパケットを無効にしたのはなぜかと思いますが、信号受信機で何とか作成すると思います。

とにかく、私の提案は、受信したすべてのオーディオバイトを数え、無音開始がビデオフレームの開始と正確に一致するかどうかを確認することです。例えば。 48kHzモノラルと25fpsの場合、信号損失は1920(48000/25)の倍数に一致する必要があります。そうでなければ、信号損失を処理する可能性があります。

最終的に、環境に固有の多くの不明な変数があります。シグナルチェーンとは何か、パケットが失われる場所、ストリームを受信する場所、フィルアップパケットを生成する場所などです。どのコーデックとフォーマットで作業していますか?あなたはffprobeで作業することに縛られていますか? ffmpegと無音検出など...

関連する問題