头像
tea1111980
帖子: 6
注册时间: 2012-10-19 5:28

[已解决]Fraps录制后的AVI再压制成MP4 声音会失真 怎么办?

软件版本信息如下:
avisynth 版本为:AviSynth2.58
x264 版本为:

代码: 全选

x264 0.116.2074 2641b9e
(libswscale 2.0.0)
(libavformat 53.5.0)
(ffmpegsource 2.15.4.1)
built on Aug 25 2011, gcc: 4.5.3 (x86.generic.Komisar)
configuration: --bit-depth=8
x264 license: GPL version 2 or later
libswscale/libavformat/ffmpegsource license: GPL version 3 or later
* 本人是借用别人编的BAT,在它的基础上修改了一下,然后自己在使用。

  ================================= 分割线 =================================




原因:

首先,感谢 "cunhan" 兄 和 "264768502 兄,坚持不懈提点下,我这个问题的最终、准确完美的解决了!

当然了,"cunhan" 兄 和 "264768502 兄,也尽了自己的一份力来帮助 Nmm-hd 社的其它社员们,值得鼓励!

造成这种现象是因为 AVS 脚本里面,我自行加了AmplifydB 这个参数后来就没管它(因为这个参数是我那BAT原作者在BAT注释里面写的例句,呵呵,我当时随手拿来用了。结果尼玛出问题了才知道是当时犯下的错误,哎!有罪哟 **>_<**),我当时也不知道是做什么用的,也没去查相关的AVS脚本资料,因为当时研究这个命令行的转码,人已经两天两夜没睡了,精神也不是很好,所以就疏忽了。

事实证明 是AVS 脚本里面 加入了AmplifydB(注:音量增益)这个参数,才导致我那些噪音、失真、杂音等现象的出现。

也感谢 "dgwxx"管理猿同志。呵呵! 解决啦!! OH Yeah!


反思:
为了避免对这种类似的错误再次发生,并能重新认识错误的根源所在,我决定还是继续使用AVS的批处理变量方式加入音频的转化,因为这样更能让我记住今天所发生的一切,以求最好。



解决思路如下:
用FFmpeg从AVS脚本里面提取出来的音频就会伴有杂音或噪音,反正音质不如原始文件里面的音频音质纯,是因为.AmplifydB(15,15,15)这个参数,把原始视频里面的音频部分音量,从原始提高了15个dB,所以才会有那种杂音或噪音。

* 后来我去网上查了一下AVS脚本对于这个参数的定义:
.AmplifydB 表示音量增益。
.AmplifydB(15,15,15) 这3个值分别对应左、中、右三个声道。


* 原AVS脚代码:

代码: 全选

DirectshowSource("D:\xx.avi").AmplifydB(15,15,15).changefps(30).LanczosResize(1280,720).Levels(0,1.2,255,0,255)



AVS脚本里面应该这样写才不会增加原始音频文件的音量增益,也就不会在转换之后出现杂音或噪音:

代码: 全选


DirectshowSource("D:\xx.avi").changefps(30).LanczosResize(1280,720).Levels(0,1.2,255,0,255)


按FFmpeg命令行正常写法,来提取音频即可。

代码: 全选

ffmpeg" -i "%~1.avs" -f wav audio.wav
(注: %~1 意思是,获取拖入那个文件的完整路径名称及完整文件名。)







  ================================= 分割线 =================================

问题原文如下:


本人 初涉及视频处理 这一领域,还望各位多多指教!

我使用的是 AVS+x264+FFmpeg+neroAacEnc 组合,用Fraps录制游戏视频,然后通过左边这种组合压制原始AVI文件为MP4,现在有个问题,很苦恼我。

压制之后的声音,听起来跟原始视频里面的声音有很大的差别,差别在于原始视频声音部分过渡的很平滑,而压制后的MP4文件里面的声音,听上去失真了。

不光光是录制游戏压制后有这种情况,就连录一般的视频,然后再压制,声音就会失真。

因为是初涉此领域,不知道要上一些什么图,所以先问问。

是不是我的音频压制参数有问题? 麻烦各位大大多提点提点。

各部分的代码如下:


代码: 全选

以下是 "ss.avs" 部分的代码


DirectshowSource("D:\xx.avi").AmplifydB(15,15,15).changefps(30).LanczosResize(1280,720).ConvertToYUY2().Levels(0,1.5,255,0,255) 


代码: 全选

以下是视频部分的代码


x264.exe --preset medium --me umh --tune film -o "xx.264" "ss.avs"


代码: 全选

以下是音频部分的代码


ffmpeg.exe -i "ss.avs" -vn -f wav - | neroAacEnc.exe -q 0.52 -if - -ignorelength -of "yy.AC3"


代码: 全选

以下是合并为MP4视频部分的代码


ffmpeg" -i "xx.264" -i "yy.AC3" -vcodec copy -acodec copy "xxyy_ok.mp4"
上次由 tea1111980 在 2012-10-26 11:08,总共编辑 13 次。
264768502
核心会员
核心会员
帖子: 402
注册时间: 2010-09-23 17:38

Re: Fraps录制后的AVI再压制成MP4 声音会失真 怎么办?

ffmpeg.exe -i "ss.avs" -vn -f wav - | neroAacEnc.exe -q 0.52 -if - -ignorelength -of "yy.AC3"

ffmpeg.exe -i "D:\xx.avi" -af 'volume=15db' -vn -f wav - | neroAacEnc.exe -q 0.52 -if - -ignorelength -of "yy.m4a"
头像
tea1111980
帖子: 6
注册时间: 2012-10-19 5:28

Re: Fraps录制后的AVI再压制成MP4 声音会失真 怎么办?

264768502 写了:ffmpeg.exe -i "ss.avs" -vn -f wav - | neroAacEnc.exe -q 0.52 -if - -ignorelength -of "yy.AC3"

ffmpeg.exe -i "D:\xx.avi" -af 'volume=15db' -vn -f wav - | neroAacEnc.exe -q 0.52 -if - -ignorelength -of "yy.m4a"

执行后的效果如下图所示:
done.png
cunhan
核心会员
核心会员
帖子: 214
注册时间: 2010-09-20 22:09

Re: Fraps录制后的AVI再压制成MP4 声音会失真 怎么办?

-af "volume=15db"

单引号改为双引号
头像
tea1111980
帖子: 6
注册时间: 2012-10-19 5:28

Re: Fraps录制后的AVI再压制成MP4 声音会失真 怎么办?

cunhan 写了:-af "volume=15db"

单引号改为双引号
这个我都试过的,没用。。

不过,我现在已经解决了。。
cunhan
核心会员
核心会员
帖子: 214
注册时间: 2010-09-20 22:09

Re: [已解决]Fraps录制后的AVI再压制成MP4 声音会失真 怎么办?

解决了最好把解决方法分享出来吧
头像
dgwxx
管理猿
帖子: 771
注册时间: 2010-09-19 20:42
联系: 网站

Re: [已解决]Fraps录制后的AVI再压制成MP4 声音会失真 怎么办?

貌似楼主编辑到顶楼了。
日常推 @dgwxx: 基本没什么技术的话题,欢迎没事看看消遣。
► 显示剧情透露 平庸的rip
► 显示剧情透露 “不知道”的五大理由
264768502
核心会员
核心会员
帖子: 402
注册时间: 2010-09-23 17:38

Re: [已解决]Fraps录制后的AVI再压制成MP4 声音会失真 怎么办?

咦 我是看到LZ在AVS里音频增益了才加上那句af....结果LZ不需要音频增益了么 Orz
头像
tea1111980
帖子: 6
注册时间: 2012-10-19 5:28

Re: [已解决]Fraps录制后的AVI再压制成MP4 声音会失真 怎么办?

264768502 写了:咦 我是看到LZ在AVS里音频增益了才加上那句af....结果LZ不需要音频增益了么 Orz

老大,我本来就不需要音频增益。。刚开始你给我的这句,我还以为是减益的啊。搞得我异常兴奋!
结果,运行不了,起不了作用,哈 哈!就算是你说的那个方法,我也试过,也是无效的参数。
264768502
核心会员
核心会员
帖子: 402
注册时间: 2010-09-23 17:38

Re: [已解决]Frahttp://www.nmm-hd.org/newps录制后的AVI再压制成MP4 声音会失真

AVS里的AmplifydB(15,15,15)这句是啥? LZ知道这句话是什么意思吗?
好吧 af那句是我给错了 应该是-af "volume=15dB"

好吧,结果是我多事,我也不多说什么了

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