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
================================= 分割线 =================================
原因:
首先,感谢 "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
================================= 分割线 =================================
问题原文如下:
本人 初涉及视频处理 这一领域,还望各位多多指教!
我使用的是 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"