【发布时间】:2018-04-09 04:53:52
【问题描述】:
我收到了一个 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 之间交替。
我假设如果静音是由于信号丢失引起的,那么零字节应该在任何地方在静音开始的第一个数据包中开始,不一定在数据包的开头。
我还假设音频编辑器程序会通过数据包使音频静音,这意味着它不会尝试使数据包中间的数据字节无效,但它会尝试使所有数据字节无效数据包的数据字节。
有没有人体验过它并且可以确认/提供额外的见解?
【问题讨论】: