小雪球球
帖子: 4
注册时间: 2016-09-17 2:37

日本电视录制TS切割广告后保持音频同步的心得,无需测delay,需audiodub及二压

{:cat_3} 自己在实践中总结出来的,需要使用audiodub及二压
{:cat_13} 因为一些日本电视录制的TS的帧率经常在变化(比如经常遇到总平均FPS为29.95或29.96的),所以用EAC3to+besplit来切往往切不准。我这个办法是使用audiodub及需要二压。

重点是源滤镜要使用LWLibavVideoSource和LWLibavAudioSource来建立包含视频-音频同步信息的索引文件,并要使用强制指定帧率参数和av_sync参数。
下面是一个例子,实测出来确实同步了。虽说需要二压但如果不是金耳朵的话并无太大问题。

代码: 全选

LoadPlugin("E:\D\software\megui\tools\lsmash\LSMASHSource.dll")
video=LWLibavVideoSource("F:\忍者ハットリくん インド版\2016091319001930-BSアニマックス-忍者ハットリくん #74.ts" , fpsnum=30000, fpsden=1001)
audio=LWLibavAudioSource("F:\忍者ハットリくん インド版\2016091319001930-BSアニマックス-忍者ハットリくん #74.ts" , av_sync=true)
audiodub(video,audio)
LoadPlugin("E:\D\software\megui\tools\avisynth_plugin\TIVTC.dll")
tfm(order=1).tdecimate(mode=1,hybrid=1)
trim(711,2506)++trim(3227,19241)++trim(21880,37871)++trim(38711,40148)

autocrop(mode=0,leftadd=1,rightadd=1)
Spline64Resize(1280,720)
头像
mikey
帖子: 14
注册时间: 2016-07-15 8:38

Re: 日本电视录制TS切割广告后保持音频同步的心得,无需测delay,需audiodub及二压

谢谢分享
据我所知,ts视频轨不是一般都使用dgindex之类的工具索引么?
小雪球球
帖子: 4
注册时间: 2016-09-17 2:37

Re: 日本电视录制TS切割广告后保持音频同步的心得,无需测delay,需audiodub及二压

dgindex会自动分离出音轨且生成一个单一delay数值,不适合会帧率变动的场合。比如这论坛之前有人说的红白歌会之类,中间的新闻的延迟和其他段落并不一样,所以出来之后后半段就不同步了

另外还测试过直接切割TS的SMART CUTTER,结果是切出来后开头几帧会花屏,然而并找不到解决方法
头像
mikey
帖子: 14
注册时间: 2016-07-15 8:38

Re: 日本电视录制TS切割广告后保持音频同步的心得,无需测delay,需audiodub及二压

小雪球球 写了:dgindex会自动分离出音轨且生成一个单一delay数值,不适合会帧率变动的场合。比如这论坛之前有人说的红白歌会之类,中间的新闻的延迟和其他段落并不一样,所以出来之后后半段就不同步了

另外还测试过直接切割TS的SMART CUTTER,结果是切出来后开头几帧会花屏,然而并找不到解决方法
对于一般的ts片源来说,用dgindex之类的工具创建视频索引,用eac3to分离音频轨是比较通用的办法,一般我比较少用lwlibavvideosource或LWLibavAudioSource来处理ts片源。你那里有片源样本供大家研究一下嘛?
小雪球球
帖子: 4
注册时间: 2016-09-17 2:37

Re: 日本电视录制TS切割广告后保持音频同步的心得,无需测delay,需audiodub及二压

mikey 写了:
小雪球球 写了:dgindex会自动分离出音轨且生成一个单一delay数值,不适合会帧率变动的场合。比如这论坛之前有人说的红白歌会之类,中间的新闻的延迟和其他段落并不一样,所以出来之后后半段就不同步了

另外还测试过直接切割TS的SMART CUTTER,结果是切出来后开头几帧会花屏,然而并找不到解决方法
对于一般的ts片源来说,用dgindex之类的工具创建视频索引,用eac3to分离音频轨是比较通用的办法,一般我比较少用lwlibavvideosource或LWLibavAudioSource来处理ts片源。你那里有片源样本供大家研究一下嘛?
链接:http://pan.baidu.com/s/1kVfhSYr 密码:vxrs
这边是一个例子,用eac3to的话,切割广告后片尾会不同步
头像
mikey
帖子: 14
注册时间: 2016-07-15 8:38

Re: 日本电视录制TS切割广告后保持音频同步的心得,无需测delay,需audiodub及二压

小雪球球 写了:这边是一个例子,用eac3to的话,切割广告后片尾会不同步
针对你给出的这个片源,我来报告一下我的测试结果

1. 用你给的办法处理是OK的,音画良好同步。
avs是这样的:

代码: 全选

LoadPlugin("E:\program_media\avisynth-plugin\source\L-SMASH-Works-r903-20160815-32bit\AviSynth\LSMASHSource.dll")
video=LWLibavVideoSource("円谷劇場「快獣ブースカ」第46話「空飛ぶ音楽堂」.ts" , fpsnum=30000, fpsden=1001)
audio=LWLibavAudioSource("円谷劇場「快獣ブースカ」第46話「空飛ぶ音楽堂」.ts" , av_sync=true)
audiodub(video,audio)
2. 另外我也来分享一个方案,音画良好同步。
用dgindexnv对ts创建索引,
用mkvmerge将ts封装为mkv(临时文件),然后用eac3to分离mkv的音轨,(分离之后mkv临时文件就可以删掉了)
最后用audiodub整合
avs是这样的:

代码: 全选

LoadPlugin("E:\program_media\DGDecNV2052\DGDecodeNV.dll")
LoadPlugin("E:\program_media\avisynth-plugin\source\L-SMASH-Works-r903-20160815-32bit\AviSynth\LSMASHSource.dll")
v = DGSource("円谷劇場「快獣ブースカ」第46話「空飛ぶ音楽堂」.dgi")
a = LWLibavAudioSource("円谷劇場「快獣ブースカ」第46話「空飛ぶ音楽堂」.[mkv-assist]--track02 [fix-delay] DELAY -7ms.aac").DelayAudio(-0.007)
AudioDub(v, a)
以上这个方案的好处是,音频轨可以直接参与成品的封装而不必须经过avisynth的处理


3. 最后再来一个测试后发现声音滞后的方案。(音画不同步原因待查 {:doge}
用dgindexnv对ts创建索引,
用eac3to分离ts的音轨,
最后用audiodub整合。
avs是这样的:

代码: 全选

LoadPlugin("E:\program_media\DGDecNV2052\DGDecodeNV.dll")
LoadPlugin("E:\program_media\avisynth-plugin\source\L-SMASH-Works-r903-20160815-32bit\AviSynth\LSMASHSource.dll")
v = DGSource("円谷劇場「快獣ブースカ」第46話「空飛ぶ音楽堂」.dgi")
a = LWLibavAudioSource("円谷劇場「快獣ブースカ」第46話「空飛ぶ音楽堂」--track02 [fix-delay] DELAY -7ms.aac").DelayAudio(-0.007)
AudioDub(v, a)
小雪球球
帖子: 4
注册时间: 2016-09-17 2:37

Re: 日本电视录制TS切割广告后保持音频同步的心得,无需测delay,需audiodub及二压

TS一般都比较大,生成一个新临时MKV会占用不少时间,尤其是时长超过一两个小时的
所以两种办法各有千秋
顺便可测试下另两种方案:
不对TS使用DGINDEX,直接对临时MKV使用DGINDEX是否成功?
使用MKVEXACT解压该MKV出来的音轨,效果又如何?
星光爆碎
帖子: 1
注册时间: 2018-06-05 3:19

Re: 日本电视录制TS切割广告后保持音频同步的心得,无需测delay,需audiodub及二压

感觉TS这个音频的delay完全是玄学吧

绝大部分情况下直接使用 eac3to的 -demux 解包可以准确的处理delay
然后只需要在trim的时候在AVS里LWLibavVideoSource导入解包出来的m2v文件进行trim 并根据相应的trim帧数据对aac文件进行切割即可

少数情况下会遇到我今天这个坑...

问题是这样的:
一个总长30分钟的ts ?30分钟零1秒? 反正要稍微长一点
eac3to在demux的时候报Detected PTS overflow
然后读取出来的delay只有5ms 这显然是不对的 运行记录中也根本没有显示有处理delay
压完封装完后也确实出现了音画不同步的状况

后来经过大量切割的测试(切割工具是tssplitter 日文那个) 发现问题似乎出在 02:06 - 02:07这一秒之内 只要切割的ts段落带这段一秒钟的长度 eac3to统统会把其识别为5ms的delay

用eac3to看了一眼
图片
这数据完全不对劲吧 应该是录的时候就出错了?
虽然实际播放TS到这里的时候 画面和声音上在这一秒看不出有什么问题

顺便一提 这一秒之前的部分是bc33_HD.ts 之后的部分是bc33_HD-2.ts
如上图
bc33_HD-2.ts那-429ms的delay应该是TS被从02:07处切断后 后面部分的delay
而02:07已经进入OP了 是正片的一部分 不能把之前的部分舍弃掉 所以这个-429ms的delay在这次情况中没有什么卵用

而bc33_HD.ts 也就是00:00:00 到 00:02:06 这一段头部的部分的delay是-800ms 这应该就是这个ts文件正确的delay了

手工加上这800ms的delay
eac3to.exe bc33.ts -demux -800ms
恩 现在分离出来的视频和音频流对上了 问题似乎是解决了

所以之前到底谁说数字信号没有玄学的? 换好点的线能避免录制出错吗

回到 “音频编码器 / Audio encoder”