FFmpeg:检查 aac 比特流是不是格式错误
Posted
技术标签:
【中文标题】FFmpeg:检查 aac 比特流是不是格式错误【英文标题】:FFmpeg : Check if the aac bitstream is malformed or notFFmpeg:检查 aac 比特流是否格式错误 【发布时间】:2015-10-10 16:53:49 【问题描述】:我想在我的服务器上上传几组视频,然后在 html5 视频标签中播放它们。但其中一些不玩。
我检查了视频的音频流和视频流,它们分别有 AAC 和 H264 编解码器。所以对我来说似乎没有任何问题。
然后我尝试重新编码它,我收到以下消息:
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 格式并且缺少额外数据)