采用的压缩方法
使用mencoder分离,解码,挂字幕。使用mencoder内置的x264库编码
使用mp4creator封装mp4
操作系统是Ubuntu 8.04 amd64,mencoder和mp4creator直接从ubuntu源安装得来,没有自己编译。
mecoder似乎没法查看版本信息,所以贴出mplayer的,应该是同一svn版本的:
- MPlayer 1.0rc2-4.2.3 (C) 2000-2007 MPlayer Team
- CPU: Intel(R) Core(TM)2 CPU T5600 @ 1.83GHz (Family: 6, Model: 15, Stepping: 6)
- CPUflags: MMX: 1 MMX2: 1 3DNow: 0 3DNow2: 0 SSE: 1 SSE2: 1
使用的参数如下:
- #x264参数
- CRF=$3
- #一般CRF设为23
- x264opts=crf=$CRF:level_idc=3:bframes=3:frameref=2:nopsnr:nossim
- #字幕参数
- SUBCP=unicode
- SID=0
- #SUB=$4
- FONT=-subfont-text-scale\ 3\ -font\ /home/usr/.fonts/YouYuan/YouYuan.ttf
- SUBOPTS=-subcp\ $SUBCP\ -sid\ $SID\ $FONT
- #SUBOPTS=-subcp\ $SUBCP\ -sub\ $SUB\ $FONT
- #缩放
- REV=720:480
- #mencoder
- mencoder -of rawvideo -ofps 23.976 -nosound\
- $SUBOPTS\
- -ffourcc H264 -ovc x264 -x264encopts $x264opts -vf scale=$REV,harddup\
- -o $2.264 $1
- #封装mp4
- mp4creator -create=$2.264 -rate=23.976 $2.mp4
- mp4creator -create=$2.aac $2.mp4
问题:
1.高宽比问题:
这样压出来的mp4,在电脑上使用mplayer播放时,可以识别出正确的高宽比,自动resize。
但是在psp上播放时,没有自动resize,需要手动选择fullscreen。
而我从网上下载得到的,字幕组压制的480p avc,是可以被psp正确自动resize的。
这是怎么设置的?我试过sar参数,但是直接崩飞了...
2.x264的rawinput
我自己编译过x264,版本信息如下:
- x264 core:65 r999 cc51047
支持的输入类型是:
- Infile can be raw YUV 4:2:0 (in which case resolution is required),
- or YUV4MPEG 4:2:0 (*.y4m),
- or AVI or Avisynth if compiled with AVIS support (no).
我试着用mencoder pipe作为输入:
- #从rouzhou的帖子里学来的
- mencoder -o - -of rawvideo -nosound -quiet input | x264 - aaaxbbb ...
但是返回如下错误
- x264 [error]: Rawyuv input requires a resolution.
恩...没有什么头绪,似乎是mecoder输出的rawyuv没有header信息,所以x264无法获得正确的分辨率?
这个问题如何解决呢?
3.码率控制
我试验过cfr,qp和2pass四种方式
最终采用的是cfr
在相近的最终平均码率下
qp的质量稍好,但是文件体积较大,耗时较长。最关键的是,有时候无法在psp上播放(-qp在26以上比较安全,但是质量就不行了)
2pass与cfr相比之下,文件体积稍微小一点点(5%左右),质量相似。但有时会出错,而且耗时最长。最终还是被我放弃了。
最后采用的cfr方案,我试验过1,11,23,35,48五个等级
1无法在psp上播放
11与23相比,文件要大出110%左右。在电脑上播放时,11非常清楚,23有极轻微的模糊和发虚现象。但psp上播放时,我很难看出区别。
35就会出现小马赛克了,48画面完全崩飞,成功变身盗版dvd...
所以我一般会使用23的crf
但是与网上字幕组的480p相比,我的文件会大出40%左右,画面质量相似,我个人很难看出区别(无论在电脑上或是psp上)
对比文件是popgo的gundam oo season 2,我用的片源是同字幕组的mkv
这样的情况,是片源问题导致的正常情况么?如果有办法改善,应该怎么做?
另外,还有什么我没注意到,但是可以改善压缩过程与结果的问题么?- -...
最后,压缩的样片
1.三段不同的短片,分别是一部日剧和两部动画。日剧720p,动画1080p,都是x264编码,mkv封装。
每段6秒,分别使用cfr11,22,33压制。
2008NOV14.tar.gz2.上面第一段动画与日剧的较长剪辑,动画1分钟,日剧3分30秒,cfr均为22。
example_001_crf_22.mp4example_003_crf_22.mp4