FFmpeg:检查 aac 比特流是不是格式错误

Posted

技术标签:

【中文标题】FFmpeg:检查 aac 比特流是不是格式错误【英文标题】:FFmpeg : Check if the aac bitstream is malformed or notFFmpeg:检查 aac 比特流是否格式错误 【发布时间】:2015-10-10 16:53:49 【问题描述】:

我想在我的服务器上上传几组视频,然后在 html5 视频标签中播放它们。但其中一些不玩。

我检查了视频的音频流和视频流,它们分别有 AACH264 编解码器。所以对我来说似乎没有任何问题。

然后我尝试重新编码它,我收到以下消息:

malformated aac bitstream, use -absf aac_adtstoasc
av_interleaved_write_frame(): Operation not permitted

但是我不想在上传之前对视频进行编码,并且只需要检查视频是否有格式错误的 aac 或 h264 比特流。

PS。用户有限,将提供视频 h264 和 aac 为上传编码。

【问题讨论】:

【参考方案1】:

malformated aac bitstream, use -absf aac_adtstoasc 不代表输入流无效。而是重新编码无效。这个想法是您使用 MPEG-2 传输流作为输入,其中的 AAC 流使用 ADTS 格式。

如果您想重新编码文件并将容器更改为 FLV 或 MP4,例如,您必须使用比特流过滤器 aac_adtstoasc 删除 ADTS 标头:

-bsf:a aac_adtstoasc

要查看输入流,您可以使用ffprobe。例如:

ffprobe -v quiet -print_format json -show_streams [input]

验证文件完整性是另一回事。

如果输入是 MPEG-TS,它将不会在 HTML5 中原生播放。检查上传的格式并重新编码为 HTML5 支持的格式。

【讨论】:

以上是关于FFmpeg:检查 aac 比特流是不是格式错误的主要内容,如果未能解决你的问题,请参考以下文章

将 AAC 的 avcodec 配置配置为 HLS/MPEG-TS([mpegts @ 0x7fc4c00343c0] AAC 比特流不是 ADTS 格式并且缺少额外数据)

Chrome cast:多通道 HE-AAC 是不是以 HDMI 比特流直通模式发送到 AV 接收器?

Ffmpeg音频转码 卡顿(MP2转AAC)

ffmpeg 音频转码

ffmpeg 比特率比请求的大 10%

FLV文件(H264 + AAC)格式超详细分析