一,使用工具:
(1)ffmpeg:用于音视频解码,基本上支持所有主流格式
(2)x264:用于h264视频压制
(3)neroAacEnc:用于aac音频压制
(4)MKVToolNix:用于MKV混流
上述4款均为免费软件,且均有Windows和Linux平台下的对应版本
二,压制过程:
2.1 Windows平台下
(1)使用ffmpeg解码提取视频信息,通过管道传给x264,进行第一遍压缩,具体参数参考ffmpeg及x264手册,该过程主要生成pass信息
ffmpeg -i "movie.avi" -f yuv4mpegpipe -an -v 0 - | x264 --bitrate 680 --pass 1 --tune animation --stats "01_pass1.stats" --demuxer y4m -o NUL -
(2)使用ffmpeg解码提取视频信息,通过管道传给x264,进行第二遍压缩,具体参数参考ffmpeg及x264手册,该过程利用上次编码的pass信息生成最终视频文件01.264
ffmpeg -i "movie.avi" -f yuv4mpegpipe -an -v 0 - | x264 --bitrate 680 --pass 2 --tune animation --stats "01_pass1.stats" --demuxer y4m -o 01.264 -
(3)使用ffmpeg解码提取音频信息(6通道),通过管道传给neroAacEnc,具体参数参考ffmpeg及neroAacEnc手册
ffmpeg -i "movie.avi" -vn -acodec pcm_s16le -ac 6 -f wav - | neroAacEnc -if - -br 96000 -ignorelength -of 01.aac
(4)使用MKVToolNix将生成的01.264和01.aac文件混流,该过程可使用图形界面
2.2 Linux平台下
将上述第一步最后的 "-o NUL -" 换成 "-o /dev/null -" 便可
(1)ffmpeg:用于音视频解码,基本上支持所有主流格式
(2)x264:用于h264视频压制
(3)neroAacEnc:用于aac音频压制
(4)MKVToolNix:用于MKV混流
上述4款均为免费软件,且均有Windows和Linux平台下的对应版本
二,压制过程:
2.1 Windows平台下
(1)使用ffmpeg解码提取视频信息,通过管道传给x264,进行第一遍压缩,具体参数参考ffmpeg及x264手册,该过程主要生成pass信息
ffmpeg -i "movie.avi" -f yuv4mpegpipe -an -v 0 - | x264 --bitrate 680 --pass 1 --tune animation --stats "01_pass1.stats" --demuxer y4m -o NUL -
(2)使用ffmpeg解码提取视频信息,通过管道传给x264,进行第二遍压缩,具体参数参考ffmpeg及x264手册,该过程利用上次编码的pass信息生成最终视频文件01.264
ffmpeg -i "movie.avi" -f yuv4mpegpipe -an -v 0 - | x264 --bitrate 680 --pass 2 --tune animation --stats "01_pass1.stats" --demuxer y4m -o 01.264 -
(3)使用ffmpeg解码提取音频信息(6通道),通过管道传给neroAacEnc,具体参数参考ffmpeg及neroAacEnc手册
ffmpeg -i "movie.avi" -vn -acodec pcm_s16le -ac 6 -f wav - | neroAacEnc -if - -br 96000 -ignorelength -of 01.aac
(4)使用MKVToolNix将生成的01.264和01.aac文件混流,该过程可使用图形界面
2.2 Linux平台下
将上述第一步最后的 "-o NUL -" 换成 "-o /dev/null -" 便可