『漫游』酷论坛>『影音数码技术学习交流』>[求助] mkvmerge时音频出 ..

[求助] mkvmerge时音频出错,说no valid AAC header found

Aegis@2009-01-06 16:06

试图用mkvtoolnix来mux一个视频轨和一个音频轨,视频是从TS的MPEG2压的x264,mp4封装;音频是从TS里面直接抽出来的aac,5.1声道,用的是megui的d2v creator抽取的。

然后在运行mkvmerge的时候出了一个warning:
Warning: 'E:\第59回NHK紅白歌合戦前半.1080i.HDTV.MPEG2.AAC.5.1ch PID 110 DELAY -365ms.aac' track 0: Skipping 9389087 bytes (no valid AAC header found). This might cause audio/video desynchronisation.

后果就是出来的文件从某个时间点开始声音就不同步了~

但是用mpc-hc放视频并挂上这音频,从头到尾都是好的

请教造成这个问题的原因是什么?是megui的d2v creator出的错,还是源TS文件包含的音轨本来就有错?有什么解决办法吗?先多谢了~~m(_ _)m
引用

roozhou@2009-01-06 17:10

你可以用ffmpeg直接抽音轨
ffmpeg -i xxx.ts -vn -acodec copy xxx.aac
引用

MeteorRain@2009-01-06 18:20

我和你遇到相同的问题了

因为mkvmerge加adts流做delay调整的时候,会直接裁掉adts流,所以可能会有问题。

这个问题要追溯上去的话
首先是你从ts流里dgindex拆出来,会有 DELAY -xxxms 标记,这个是流同步标记。以前在我的怂恿下,某人给mmg加上了自动识别DELAY并自动加载到音频delay项里的功能。所以你点音频看下面延迟上应该是-365了

然后由于是adts流,好像mkvmerge处理起来有些不稳,直接裁掉了前面了多少个字节,所以会造成一定的问题




后来因为正好我需要,所以把aac从5.1 downmix到2.0 wav去了,然后用sox给trim和vol了一下,neroaacenc到mp4,合进去一切正常了。你可以去popgo的bt页抓我发的红白 -ww-
引用

roozhou@2009-01-06 22:02

楼上能解释一下吗,什么叫裁掉了前面多少个字节
如果音频的总长度不变,为什么会出现不同步,还有mmg里不是可以手工设置delay吗
引用

Aegis@2009-01-06 23:21

多谢楼上两位~~

这样看来就是mkvmerge的问题了,那我还是不折腾了,等MeteorRain同学放出的2声道版本吧 :)
引用

su_xinling@2009-01-07 00:37

是不是说adts-aac头部不能裁短?那么视频delay +365ms如何?有没有后遗症?
引用

MeteorRain@2009-01-07 21:11

引用
最初由 roozhou 发布
楼上能解释一下吗,什么叫裁掉了前面多少个字节
如果音频的总长度不变,为什么会出现不同步,还有mmg里不是可以手工设置delay吗

delay是自动识别的。不信可以拖个 xxx DELAY -abc.ac3或者.aac进去,看看delay是不是自动设成了-abc了

delay是负的,自然要裁掉头了,当然就可能出问题了
引用

roozhou@2009-01-08 10:10

audio delay是负的为什么要裁掉头,而不是让视频延迟
一般这种delay是decoding delay吧
引用

su_xinling@2009-01-08 13:28

引用
最初由 roozhou 发布
audio delay是负的为什么要裁掉头,而不是让视频延迟
一般这种delay是decoding delay吧


好像mmg对声音延迟是动真格的,-的会剪裁+的添空白。所以前面我问到,声音delay-的时候是,是不是改变方式把视频作delay+会比较好呢?
引用

| TOP