NMM视频技术(旧)

 找回密码
 成为会员
搜索
查看: 5739|回复: 14

音频不同步问题

[复制链接]
发表于 2009-10-17 16:25 | 显示全部楼层 |阅读模式
最近碰到一个比较BT的iso
NTSC 30i 音频AC3
载入镜像直接播放音频是同步的 但是用dgindex分离音频 生成d2v压制之后再封MKV 音频就不同步了

视频总时间2:09:51  音频总时间2:09:43(似乎分离出来的AC3音轨一般比视频要短)
视频是30i的 直接deinterlace
用dgindex分离出来的AC3标明的是delay 0ms
打开MKV观察发现第一段章节是同步的 但是到了第二段音频就突然提前了很多 之后的章节音频提前也越来越明显
偏偏这个iso有78个章节 一段一段增加静音块也不大现实
初步想法是导出vob文件音频的时间戳再封装到MKV里 但是网上也没有相关的讨论 不知如何实现
不知有没有人碰到过类似的问题
发表于 2009-10-17 18:34 | 显示全部楼层
还真没遇到过这种情况……
在DGIndex里面解成WAV试试?
 楼主| 发表于 2009-10-17 20:09 | 显示全部楼层
回复 2# dgwxx


    我的win7系统下转存为wav无效。。另外字幕和画面是匹配的 估计源文件是通过时间戳来保持音频同步的?
发表于 2009-10-17 21:31 | 显示全部楼层
分段做D2V
分别加载源为 A1 A2 A3 A4。。。。 An
然后相加
发表于 2009-10-18 05:49 | 显示全部楼层
楼主是打算把整张DVD压成1个MKV再分为78个章节呢,还是打算压成78个MKV呢?

从你的描述看,音频比视频短了8秒,先用播放器外挂那个demux出来的音频看看能不能同步吧。

另外,我个人觉得DGINDEX里最好按F4保存工程文件来demux音频,不要直接demux,也不要用它的WAV转换比较好。
发表于 2009-10-18 07:38 | 显示全部楼层
可以DirectShow GraphEdit提取音轨到MKV中
当然前提是用haali作分离器时,播放片源正常的时候才能这样做。
把片源拖入GraphEdit,然后删除所有分支,从图表--插入过滤器,在directshow filters的展开目录下选haali matroska muxer滤镜 ,这时提示保存文件,命名一个后缀名为mkv的文件来保存音轨,接着把片源的audio出口和这个mkv文件连线,再点击工具栏中的绿色箭头,等一段时间后那个绿色箭头再次变绿的时候(处理过程中箭头是灰的),音轨就被提取到mkv文件中了。
发表于 2009-10-18 12:50 | 显示全部楼层
楼主是打算把整张DVD压成1个MKV再分为78个章节呢,还是打算压成78个MKV呢?

从你的描述看,音频比视频短 ...
diseac 发表于 2009-10-18 05:49


同意,我从来不直接demux audio,只用保存d2v文件时demux出来的东西。
 楼主| 发表于 2009-10-18 12:51 | 显示全部楼层
回复 4# xiao1


    意思是分段生成d2v然后再avs里把音频加起来?78段的工作量还是不少的。。而且dgindex里也不好定位
 楼主| 发表于 2009-10-18 12:53 | 显示全部楼层
本帖最后由 horsev 于 2009-10-18 13:05 编辑

回复 5# diseac


当然是压成一个文件然后封chapter 视频已经压好了 章节也做好了 现在头疼的就是音频了

音频是save project生成的
而且我把iso重新输出一个4G+的vob文件 播放这个文件音频是同步的 但是用这个vob挂上分离出来的音频 就不同步了
用vob挂音频的时候第一段音频就出现很离谱的提前 晚上回来再仔细看看
 楼主| 发表于 2009-10-18 21:08 | 显示全部楼层
回复 6# hdfuck


    按您的方法测试了一下 得到的音轨仍然不匹配 但是延迟情况与直接封装又有所不同
   得到的音轨第一段不是超前而是延后了

又仔细比较了一下vob和MKV的播放情况 发现第一章与第二章之间两者有所区别 vob是有一小段静音的(画面仍然在变化) 而MKV的音轨是两首歌的声音直接连起来了 没有那一小段静音 应该就是这一小段造成了后面的音轨不同步(直接提取的音轨和按6楼方法提取的音轨都不含这一静音段)

尝试在播放MKV时对音轨加延迟 中间一大段得到了比较好的效果 但是后面又出现声音提前的情况
初步判断这样的静音段不是每两个章节之间都有的 总数目可能不多 手动对音轨加静音块操作上应该是可行的 这样音轨不同步的问题就能解决了

不过不知道有没有更理论上的解释和更简便的处理方法
发表于 2009-10-19 19:50 | 显示全部楼层
楼主有没试过directshowsource?
 楼主| 发表于 2009-10-19 22:06 | 显示全部楼层
回复 11# diseac


试着用DS载入了那个4G的vob文件 发现帧数变成了369328 帧率还是29.970 于是显示的播放时间就成了3小时以上
正确的帧数应该是233507 播放时间是2小时多一点
这种情况应该怎么处理呢?
而且用播放器直接打开vob文件时 显示的播放时间也是3小时以上
但是打开DVD时播放时间显示是正确的2小时多一点

另外 换用1.49版本的dgindex成功将音轨保存为wav 但是仍然不同步
发表于 2009-10-19 22:22 | 显示全部楼层
我想说的是用directshowsource载入VOB,提取音频。
播放时间错误,换分离器和解码器试试。
 楼主| 发表于 2009-10-19 22:37 | 显示全部楼层
本帖最后由 horsev 于 2009-10-19 22:52 编辑

回复 13# diseac


我的avs是这样的
DirectShowSource("K:\VIDEO_TS\VTS_01_1.VOB",video=false)
送到megui的Audio Input里面压AAC 然后和视频一起封装成MKV
结果不同步的状况和AC3一样
 楼主| 发表于 2009-10-20 11:04 | 显示全部楼层
试着参照dgindex的手册分析了一下 发现这个vob的问题与Analyze Sync一节描述的问题一致
Decode picture: temporal reference 2[I]
delay = -220
Decode picture: temporal reference 2[I]
delay = -208
Decode picture: temporal reference 2[I]
delay = -197
Decode picture: temporal reference 2[I]
delay = -125625
Decode picture: temporal reference 2[I]
delay = -195
Decode picture: temporal reference 2[I]
delay = -184

手册上解释原因是“a jump in the SCR”  我的理解是出现了一段只有画面没有声音的GOP  解决的办法就是分段生成d2v 跳过这一GOP
但是给整个文件生成d2v的时候 dgindex并不会提示这个问题 除非正好把起始点设置在出错的那个GOP前面 这样生成的d2v的时候dgindex才会有出错提示  所以还是得手动把有问题的GOP挑出来 dgindex输出的log貌似没太大帮助

不过既然视频已经将错就错的压好了 给音频加静音段似乎更方便。。
您需要登录后才可以回帖 登录 | 成为会员

本版积分规则

小黑屋|手机版|NMM视频技术

GMT+8, 2025-5-6 07:45 , Processed in 0.060212 second(s), 14 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表