wmv文件的压制以及解决由VFR导致的音画不同步问题
dwing吧
全部回复
仅看楼主
level 1
时常有些资源是wmv格式的,而且这些wmv文件还是vfr的,导致压制后总是声音和画面不同步。因此,在压制前需要一些预处理来解决同步问题。我个人经常采用2种方法:
第一种方法是:使用工具提取wmv文件的时间码,再用X264压制成H.264,最后在用MKVToolnix混流的时候加入时间码文件。
参考来源:http://forum.doom9.org/showthread.php?t=110847&page=3
详述:
1.我选用的软件是WMVTimes.exe,是一个大侠多年前在doom9论坛发布的工具,上面的链接就是那个帖子。WMVTimes.exe直接下载链接:https://drive.google.com/file/d/0B2P9tmmpSwF-MlZ3OE52UDRqWmc/edit?usp=sharing
2.在CMD窗口中运行命令:
WMVTimes.exe D:\a.wmv D:\a-timecodes.txt
a.wmv为源文件。
a-timecodes.txt即生成的timecodes文件,其格式位V2。我用的MKVToolnix版本能够使用v2。
3.使用X264压制wmv文件。
4.用mkvtoolnix中的mmg工具混流x264的视频和音频。点击“轨道、章节与标签”部分的视频源,再在下面的“轨道常规选项”的“时间码”一栏中选择第2步中生成的a-timecodes.txt时间码文件。
第二种方法是:先使用VirtualDub将源压制成CFR,再用X264压缩成H.264,最后在用MKVToolnix混流的时候指定输入FPS即可。
详述:
1. 首先需要使VirtualDub支持wmv文件
需要安装的软件有ffdshow:安装时要选中VFW和VirtualDub插件,以便VirtualDub通过VFW调用ffdshow进行视频解码。并且在FFDSHOW中通过VFW设置开启WMV1/2/3和VC1支持。
DivX Audio Compressor:使VirtualDub持0x0161-WMA v2的ACM编解码器
WMV.vdplugin:使VirtualDub支持wmv格式文件。
可能需要安装lameACM,使VirtualDub进行MP3音频的ACM解码和编码。
可能需要安装AACACM,使VirtualDub进行AAC、MP4A音频的编解码。
可能需要Xvid Codec,使VirtualDub进行Xvid编解码。
2. 在VirtualDub中打开wmv源文件,如果VirtualDub不不能识别音频部分,那是因为音频部分采用的是WMA V3(0162)编码。只能先在VirtualDub的File->Save as WAV,将音频部分到处,再使用格式工厂将导出的wav压制成MP3或者AAC等VirtualDub能够识别的音频格式。
3.在VirtualDub中,Video->Full processing mode, 并且在Video->Compression中选择自己喜欢的压缩格式,我一般选XVID。
4.最重要的一步,在VirtualDub中,Video->Frame rate, frame rate conversion, convert to fps: 填入合适的FPS值。
5.音频部分,如果VirtualDub能够识别音频,则Audio->Direct stream copy。如果不能识别音频部分,则Audio->Audio from other file,选中之前我们用格式工厂压制的MP4或者AAC音频文件。
6. 在VirtualDub中,File->Save as AVI进行压制。
7.使用X264压制VirtualDub生成的avi文件。
8.使用mkvtoolnix中的mmg混流x264的视频和音频,并且填入
正确的
FPS值,即我们在第4步中填写的FPS值。
第一种方法省时省力,但是万一WMVTimes.exe提取的时间码错误,就只能采用第二种方法了。
2014年08月16日 00点08分 1
level 4
遇到一样的问题,不过楼主的方法也太麻烦了点。
我也被wmv转x264搞得很晕,想要输出mp4格式的,输出文件用.mkv是正常的,输出文件设置成.264这样的rawvideo格式视频就变很快,又不能设置为.mp4,用的是x264官方版。
2014年08月16日 13点08分 2
level 1
大哥能出个详细的教程不,很多细节菜鸟都不会
2023年11月11日 17点11分 3
别挖坟了,一个ffmpeg就搞定了
2023年11月12日 09点11分
1