搜索 社区服务 统计排行 帮助
  • 2215阅读
  • 8回复

[请教]试用mecoder压制psp用480p,遇到几个问题。附参数与样片

楼层直达
级别: 新手上路
注册时间:
2008-11-14
在线时间:
0小时
发帖:
4
采用的压缩方法

使用mencoder分离,解码,挂字幕。使用mencoder内置的x264库编码
使用mp4creator封装mp4

操作系统是Ubuntu 8.04 amd64,mencoder和mp4creator直接从ubuntu源安装得来,没有自己编译。

mecoder似乎没法查看版本信息,所以贴出mplayer的,应该是同一svn版本的:
  1. MPlayer 1.0rc2-4.2.3 (C) 2000-2007 MPlayer Team
  2. CPU: Intel(R) Core(TM)2 CPU T5600 @ 1.83GHz (Family: 6, Model: 15, Stepping: 6)
  3. CPUflags: MMX: 1 MMX2: 1 3DNow: 0 3DNow2: 0 SSE: 1 SSE2: 1


使用的参数如下:
  1. #x264参数
  2. CRF=$3
  3. #一般CRF设为23
  4. x264opts=crf=$CRF:level_idc=3:bframes=3:frameref=2:nopsnr:nossim
  5. #字幕参数
  6. SUBCP=unicode
  7. SID=0
  8. #SUB=$4
  9. FONT=-subfont-text-scale\ 3\ -font\ /home/usr/.fonts/YouYuan/YouYuan.ttf
  10. SUBOPTS=-subcp\ $SUBCP\ -sid\ $SID\ $FONT
  11. #SUBOPTS=-subcp\ $SUBCP\ -sub\ $SUB\ $FONT
  12. #缩放
  13. REV=720:480
  14. #mencoder
  15. mencoder -of rawvideo -ofps 23.976 -nosound\
  16. $SUBOPTS\
  17. -ffourcc H264 -ovc x264 -x264encopts $x264opts -vf scale=$REV,harddup\
  18. -o $2.264 $1
  19. #封装mp4
  20. mp4creator -create=$2.264 -rate=23.976 $2.mp4
  21. mp4creator -create=$2.aac $2.mp4




问题:

1.高宽比问题:
这样压出来的mp4,在电脑上使用mplayer播放时,可以识别出正确的高宽比,自动resize。
但是在psp上播放时,没有自动resize,需要手动选择fullscreen。
而我从网上下载得到的,字幕组压制的480p avc,是可以被psp正确自动resize的。

这是怎么设置的?我试过sar参数,但是直接崩飞了...


2.x264的rawinput

我自己编译过x264,版本信息如下:
  1. x264 core:65 r999 cc51047

支持的输入类型是:
  1. Infile can be raw YUV 4:2:0 (in which case resolution is required),
  2. or YUV4MPEG 4:2:0 (*.y4m),
  3. or AVI or Avisynth if compiled with AVIS support (no).

我试着用mencoder pipe作为输入:
  1. #从rouzhou的帖子里学来的
  2. mencoder -o - -of rawvideo -nosound -quiet input | x264 - aaaxbbb ...

但是返回如下错误
  1. 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.gz

2.上面第一段动画与日剧的较长剪辑,动画1分钟,日剧3分30秒,cfr均为22。
example_001_crf_22.mp4
example_003_crf_22.mp4
级别: 精灵王
注册时间:
2008-04-08
在线时间:
44小时
发帖:
2855
只看该作者 1楼 发表于: 2008-11-14
aaaxbbb就是分辨率啊,比如720x480

还有mencoder要用-really-quiet而不是-quiet
级别: 新手上路
注册时间:
2008-11-14
在线时间:
0小时
发帖:
4
只看该作者 2楼 发表于: 2008-11-14
e...我没看清楚...以为是aabbcc这样的...意思是开始写aa参数bb参数什么的...

我试验了一下,可以pipe了,但是速度龟得令人发指...2.xx fps....

x264 [info]: using cpu capabilities: none!

...
级别: 新手上路
注册时间:
2007-07-18
在线时间:
0小时
发帖:
56
只看该作者 3楼 发表于: 2008-11-14
Re: [请教]试用mecoder压制psp用480p,遇到几个问题。附参数与样片
引用
最初由 foolegg 发布

我试着用mencoder pipe作为输入:
  1. #从rouzhou的帖子里学来的
  2. mencoder -o - -of rawvideo -nosound -quiet input | x264 - aaaxbbb ...

但是返回如下错误
  1. x264 [error]: Rawyuv input requires a resolution.


恩...没有什么头绪,似乎是mecoder输出的rawyuv没有header信息,所以x264无法获得正确的分辨率?
这个问题如何解决呢?


你要指定 Mencoder输出的 rawyuv类型 为 YV12 但 x264 的 YV12 的 U平面 和V平面 位置正好是相反的 实际上也就成了 I420

另外 x264可以手动指定 分辨率 具体见 --longhelp

下面是个例子
mencoder "C:\Mencoder.pipe.to.x264\CM.avs" -really-quiet -nosound -ovc raw -vf format=i420 -of rawvideo -o - | x264.exe
级别: 新手上路
注册时间:
2008-11-14
在线时间:
0小时
发帖:
4
只看该作者 4楼 发表于: 2008-11-14
Re: Re: [请教]试用mecoder压制psp用480p,遇到几个问题。附参数与样片
引用
最初由 leeyoung 发布

你要指定 Mencoder输出的 rawyuv类型 为 YV12 但 x264 的 YV12 的 U平面 和V平面 位置正好是相反的 实际上也就成了 I420

另外 x264可以手动指定 分辨率 具体见 --longhelp

下面是个例子
mencoder "C:\Mencoder.pipe.to.x264\CM.avs" -really-quiet -nosound -ovc raw -vf format=i420 -of rawvideo -o - | x264.exe


对对,开始时候颜色有问题,加上format=i420就正常了

x264 [info]: using cpu capabilities: none!

的问题,是我这次编译时候忘记预先编译yasm了,重新编译就好了

现在的问题是怎么resize?

我在mencoder里scale=720:480
在x264里用720x480指定分辨率

但是输出的画面闪的厉害,根本没法看...
级别: 骑士
注册时间:
2003-06-05
在线时间:
0小时
发帖:
1041
只看该作者 5楼 发表于: 2008-11-14
升级成5.00就不闪了
级别: 精灵王
注册时间:
2008-04-08
在线时间:
44小时
发帖:
2855
只看该作者 6楼 发表于: 2008-11-15
引用
最初由 foolegg 发布
e...我没看清楚...以为是aabbcc这样的...意思是开始写aa参数bb参数什么的...

我试验了一下,可以pipe了,但是速度龟得令人发指...2.xx fps....

x264 [info]: using cpu capabilities: none!

...


建议去找个编译好的版本
你编译肯定有问题,把configure的log贴上来
级别: 新手上路
注册时间:
2008-11-14
在线时间:
0小时
发帖:
4
只看该作者 7楼 发表于: 2008-11-15
引用
最初由 52wy 发布
升级成5.00就不闪了


不是bob的问题,我在电脑上看一样闪
是每两桢之间夹着一幅奇怪的画面
而且时间也被拉长了,三秒的剪辑变成了6秒

参数如下

  1. mencoder -o - input -of rawvideo -nosound -ovc raw -ss 00:30 -endpos 00:03 -vf format=i420,scale=720:480 -ofps 23.976 -really-quiet\
  2. |x264 - --level=5.1 --crf=22 720x480 -o test.264 -b=3 --ref=2 --no-psnr --no-ssim --fps=23.976


样片如下
test.mp4


cpu capabilities: none!已经好了,我原来忘记装asm,disable掉了...现在是
  1. x264 [info]: using cpu capabilities: MMX2 SSE2Fast SSSE3 Cache64
级别: 精灵王
注册时间:
2008-04-08
在线时间:
44小时
发帖:
2855
只看该作者 8楼 发表于: 2008-11-15
引用

  1. mencoder -o - input -of rawvideo -nosound -ovc raw -ss 00:30 -endpos 00:03 -vf format=i420,scale=720:480 -ofps 23.976 -really-quiet


很多错误。format=i420要放在scale之后。如果要cfr输出在vf结尾加,harddup。

引用

  1. |x264 - --level=5.1 --crf=22 720x480 -o test.264 -b=3 --ref=2 --no-psnr --no-ssim --fps=23.976



建议ref设到4以上,加入subme=6,me=umh,b-adapt=2。
快速回复

限150 字节
上一个 下一个