手动后黑战渣浪
以后还有没有机会战渣浪还两说。
昨天帮一位朋友战渣浪,这里记录一下过程。
需要用到的软件
小丸工具箱
Mediainfo
AviSynth 2.5
MKVToolnix
任意一款能查看帧数信息的播放器,如Potplayer
1.检测待后黑文件
手动真后黑(非Bug法)需要得到以下信息。
视频尺寸(宽、高)、总帧数、未后黑时平均码率、帧速。
基本上是用Potplayer都可以看,看平均码率可以通过Mediainfo来查看。
例:宽:1280,高:720,总帧数2000,未后黑时码率为1000kbps、帧速:25fps、后黑后目标码率:500kbps
2.生成黑场
使用小丸工具箱配合AviSynth来生成黑场,就是只有黑色静止画面无音频的视频。
这里需要用到AviSynth的滤镜——BlankClip,查看官方文档,可以看到滤镜用法如下:
1 2 3 |
BlankClip([clip clip, int length, int width, int height, string pixel_type, int fps, int fps_denominator, int audio_rate, bool stereo, bool sixteen_bit, int color, int color_yuv]) BlankClip([clip clip, int length, int width, int height, string pixel_type, int fps, int fps_denominator, int audio_rate, int channels, string sample_type, int color, int color_yuv]) Blackness() |
我们并不需要BlankClip提供的全部功能,仅仅用来生成黑场就行了。
那么脚本为如下写法:
1 |
BlankClip(length=帧数,width=宽度,height=高度,fps=帧率,color=$000000)ConvertToYV12() |
说明:
帧数就是后黑部分的帧数,需要自己计算。
宽度和高度以及帧率不用说,跟原视频一致。
color就是生成的视频颜色,$000000就是黑色的,后白就$FFFFFF。
最后一个ConvertToYV12()是用来转换颜色空间的,默认输出的是RGB的,需要转换成YV12(YUV 4:2:0)的颜色空间。
那么上面例子,目标码率到500kbps,直接将帧数翻一倍,总帧数到4000就可以降低一半的码率,那么来生成2000帧的后黑片段即可。
写法:
1 |
BlankClip(length=2000,width=1280,height=720,fps=25,color=$000000)ConvertToYV12() |
打开小丸工具箱,将压制模式调整成crf=23.5,宽高为0,FPS不指定。如下图:
然后切换到AVS标签,填好输出路径及文件名,将写好的脚本黏贴进去并压制AVS,如下图:
等待生成文件。
3.追加到原视频
打开MkvToolnix,先添加原始视频,然后合并追加后黑视频,最后混流。
等待混流完成,得到原视频.mkv。
4.使用小丸工具箱将手动后黑之后的视频封装成flv
这个不用多说,直接切换到封装页面,将原视频.mkv拖拽到封装转换中,直接封装为flv就行了。