先讲讲一个有趣的故事
当初mpeg4的标准提出来后,微软最先实现了它。不过微软的代码不公开,并且只用在他自家的media player上。mpeg4视频压缩比大,图像质量好,非常适合盗版及网络共享。微软的做法激怒了广大人民。人民群众的力量是伟大的,大家发起了一个名叫divx的开源组织,破解了微软的mpeg4核心,于是乎网上铺天盖地的出现了divx格式的盗版电影。divx到版本3.11后已经占据了绝大部分的市场份额,这个时候divx的一些创办者露出了真面目,他们不再公开后继版本,并推出divx5.1收取许可费。愤怒和失望过后,开源社区剩下的人和divx的另一些创办者没有放弃,他们采用完全开源的协议,开始了重新实现mpeg4的工作。于是诞生了xvid。
看下面的链接就行,很详细,不过我没碰到这么多问题,知道去下载个nasm就行了,从来没用过nasm这玩意儿。
Visual Studio 2005 XviD编译过程 How to compile Xvid with Microsoft Visual C++
http://www.xvid.org/FAQ.42.0.html
I have problems compiling the asm files – what to do?
Make sure you have the latest version of nasm installed for your platform: http://nasm.sourceforge.net If you still get experience and you try to compile for a rather new platform you may require the latest cvs version of nasm or should try yasm instead http://www.tortall.net/projects/yasm/ If both doesn’t help you should report your problem at xvid-devel@xvid.org.
在游戏中播放过场电影调用Xvid编码器流程(基于xvid1.1.0)xvid静态库的封装类(编码和解码)
[PDF] XviD 应用编程接口( API )简介( v0.1 )
关于examples
xvid_encraw -type 1 -i cactus.pgm -o test.mp4u
xvid_decraw -i test.mp4u -d -c rgb32 -f tga
E:\TDDOWNLOAD\Code\XVID\xvidcore-1.2.1\xvidcore\build\win32\bin>xvid_encraw -hel
p
xvid_encraw - raw mpeg4 bitstream encoder written by Christoph Lampert 2002-2003
xvid_encraw built at 07:27:18 on Jan 9 2009
Usage : xvid_encraw [OPTIONS]
Input options:
-i string : input filename (stdin)
-type integer: input data type (yuv=0, pgm=1, avi/avs=2)
-w integer: frame width ([1.2048])
-h integer: frame height ([1.2048])
-csp string : colorspace of raw input file i420, yv12 (default)
-frames integer: number of frames to encode
Output options:
-dump : save decoder output
-save : save an Elementary Stream file per frame
-o string : save an Elementary Stream for the complete sequence
-avi string: save an AVI file for the complete sequence
-mkv string: save a MKV file for the complete sequence
BFrames options:
-max_bframes integer: max bframes (2)
-bquant_ratio integer: bframe quantizer ratio (150)
-bquant_offset integer: bframe quantizer offset (100)
Rate control options:
-framerate float : target framerate (25.0)
-bitrate [integer] : target bitrate in kbps (700)
-size integer : target size in kilobytes
-single : single pass mode (default)
-cq float : single pass constant quantizer
-pass1 [filename] : twopass mode (first pass)
-full1pass : perform full first pass
-pass2 [filename] : twopass mode (2nd pass)
-zq starting_frame float : bitrate zone; quant
-zw starting_frame float : bitrate zone; weight
-max_key_interval integer : maximum keyframe interval (300)
Single Pass options:
-reaction integer : reaction delay factor (16)
-averaging integer : averaging period (100)
-smoother integer : smoothing buffer (100)
Second Pass options:
-kboost integer : I frame boost (10)
-kthresh integer : I frame reduction threshold (1)
-kreduction integer : I frame reduction amount (20)
-ostrength integer : overflow control strength (5)
-oimprove integer : max overflow improvement (5)
-odegrade integer : max overflow degradation (5)
-chigh integer : high bitrate scenes degradation (0)
-clow integer : low bitrate scenes improvement (0)
-overhead integer : container frame overhead (24)
-vbvsize integer : use vbv buffer size
-vbvmax integer : vbv max bitrate
-vbvpeak integer : vbv peak bitrate over 1 second
Other options
-noasm : do not use assembly optmized code
-turbo : use turbo presets for higher encoding speed
-quality integer : quality ([0..6]) (6)
-vhqmode integer : level of R-D optimizations ([0..4]) (1)
-bvhq : use R-D optimizations for B-frames
-qpel : use quarter pixel ME
-gmc : use global motion compensation
-qtype integer : quantization type (H263:0, MPEG4:1) (0)
-qmatrix filename : use custom MPEG4 quantization matrix
-interlaced [integer] : interlaced encoding (BFF:1, TFF:2) (1)
-nopacked : Disable packed mode
-noclosed_gop : Disable closed GOP mode
-lumimasking : use lumimasking algorithm
-stats : print stats about encoded frames
-ssim [integer] : prints ssim for every frame (accurate: 0 fast:
4) (2)
-ssim_file filename : outputs the ssim stats into a file
-debug : activates xvidcore internal debugging output
-vop_debug : print some info directly into encoded frames
-nochromame : Disable chroma motion estimation
-notrellis : Disable trellis quantization
-imin integer : Minimum I Quantizer (1..31) (2)
-imax integer : Maximum I quantizer (1..31) (31)
-bmin integer : Minimum B Quantizer (1..31) (2)
-bmax integer : Maximum B quantizer (1..31) (31)
-pmin integer : Minimum P Quantizer (1..31) (2)
-pmax integer : Maximum P quantizer (1..31) (31)
-drop integer : Frame Drop Ratio (0..100) (0)
-start integer : Starting frame number
-threads integer : Number of threads
-progress [integer] : Show progress updates every n frames (10)
-par integer[:integer] : Set Pixel Aspect Ratio.
1 = 1:1
2 = 12:11 (4:3 PAL)
3 = 10:11 (4:3 NTSC)
4 = 16:11 (16:9 PAL)
5 = 40:33 (16:9 NTSC)
other = custom (width:height)
-help : prints this help message
NB: You can define 64 zones repeating the -z[qw] option as needed.
E:\TDDOWNLOAD\Code\XVID\xvidcore-1.2.1\xvidcore\build\win32\bin>xvid_decraw -hel
p
xvid_decraw - raw mpeg4 bitstream decoder written by Christoph Lampert 2002-2003
Usage : xvid_decraw [OPTIONS]
Options :
-asm : use assembly optimizations (default=disabled)
-debug : debug level (debug=0)
-i string : input filename (default=stdin)
-d : save decoder output
-c csp : choose colorspace output (rgb16, rgb24, rgb32, yv12, i420)
-f format : choose output file format (tga, pnm, pgm)
-m : save mpeg4 raw stream to individual files
-help : This help message
(* means default)
E:\TDDOWNLOAD\Code\XVID\xvidcore-1.2.1\xvidcore\build\win32\bin>xvid_encraw -typ
e 1 -i cactus.pgm -o test.mp4u
xvid_encraw - raw mpeg4 bitstream encoder written by Christoph Lampert 2002-2003
Trying to retrieve width and height from input header
xvidcore build version: xvid-1.2.1
Bitstream version: 1.2.1
Detected CPU flags: ASM MMX MMXEXT SSE SSE2 SSE3 3DNOW 3DNOWEXT TSC
Detected 2 cpus, using 2 threads.
-1: key=0, time= 16, len= 927 | type=I, quant= 4, len= 14366
-1: key=0, time= 16, len= 297 | type=B, quant= 7, len= 297
-1: key=0, time= 0, len= -5 | type=P, quant= 4, len= 927
Tot: enctime(ms) = 47.00, length(bytes) = 15590
Avg: enctime(ms) = 9.40, fps = 106.38, length(bytes) = 3118
I frames: 1 frames, size = 14366/ 14366, quants = 4 / 4.00 / 4
P frames: 1 frames, size = 927/ 927, quants = 4 / 4.00 / 4
B frames: 1 frames, size = 297/ 297, quants = 7 / 7.00 / 7
E:\TDDOWNLOAD\Code\XVID\xvidcore-1.2.1\xvidcore\build\win32\bin>xvid_decraw -i t
est.mp4u -d -c rgb32 -f tga
xvid_decraw - raw mpeg4 bitstream decoder written by Christoph Lampert 2002-2003
Resized frame buffer to 352x240
Frame 0: type = I, dectime(ms) = 16.0, length(bytes) = 927
Frame 1: type = B, dectime(ms) = 16.0, length(bytes) = 297
Frame 2: type = P, dectime(ms) = 0.0, length(bytes) = 0
Avg: dectime(ms) = 10.67, fps = 93.75, length(bytes) = 5196
posted on 2009-01-09 07:44
七星重剑 阅读(2915)
评论(0) 编辑 收藏 引用 所属分类:
Game Graphics 、
IDE -- visual c++