我想在我的服务器上上传几组视频,然后在HTML5视频标签中播放。但其中一些人没有参加比赛。
我查看了视频的音频流和视频流,他们分别有 AAC 和 H264 编解码器。所以我没有什么不对。
然后我尝试重新编码,我收到以下消息:
malformated aac bitstream, use -absf aac_adtstoasc
av_interleaved_write_frame(): Operation not permitted
但是我不希望在上传前对视频进行编码,只需检查,如果视频格式错误的aac或h264 bitsream。
PS。用户数量有限,将提供视频h264和aac 为上传编码。
答案 0 :(得分:4)
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支持的格式。