mjpegtools(1) General Commands Manual mjpegtools(1) (NAME) mjpegtools - MJPEG MPEG (DESCRIPTION) MJPEG HOWTO - mjpeg-tools ( MJPEG MPEG) . . Andrew Stevens VCD . Mjpegtools MPEG . / MJPEG Zoran ZR36067 mjpegtools MJPEG xawtv (frame-buffer) . HOWTO MJPEG-tools MPEG 1/2 VCD SVCD DVD (transcoding) mpeg . (man-page) . : : man . "man mjpegtools" . info info . cvs . (tarball) (RPM deb) . . . . mjpegtools . mjpeg_play README INSTALL.real configure . .RPM .DEB mjpeg Sourceforge . scripts/ . . ( ) . . 2.4 Buz DC10 LML33 . . /usr/src/driver- zoran/ . zoran 2.4.4 . : 2.6 zoran . x64 2.6.30 zoran . Matrox Marvel : P6 ( PPro P-II P-III P-4 Athlon Duron) P5 ( Pentium Pentium-MMX K6 K6-x Cyrix Via Winchip) . "illegal instruction" . . . lav2yuv core dump dv . libdv . ( DV Canopus ADVC100) dv avi MPEG . xawtv . xawtv ( ) . . v4l2 mplayer . . Mjpegtools OS/X V4L (video4linux) . lavrec . lavrec (freeze) . v4l (video4linux) . v4l2 . v4l2 . ( ) v4l2 zoran ( BUZ DC10 DC10+ LML33) CVS mjpeg.sf.net ZORAN_VIDEODEV_2 . 2.4.20 2.5.* . : Audio: ( Samplerate * Channels * Bitsize ) / (8 * 1024) CD Quality:(44100 Samples/sec * 2 Chanels * 16 Bit) / (8 * 1024)=172,2 kB/sec The 8 * 1024 convert the value from bit/sec to kByte/sec Video: (width * height * framerate * quality ) / (200 * 1024) PAL HALF Size : (352 * 288 * 25 * 80) / (200 * 1024) = 990 kB/sec PAL FULL size : (720 * 576 * 25 * 80) / (200 * 1024) = 4050 kB/sec NTSC HALF size: (352 * 240 * 30 * 80) / (200 * 1024) = 990 kB/sec NTSC FULL size: (720 * 480 * 30 * 80) / (200 * 1024) = 4050 kB/sec 1024 . . Buz Marvel G400 -d 1 720x576 DC10 -d 2 384x288 . (lost frames) . --mjpeg- buffer-size . : (width * height * quality ) / (200 * 1024) = kB. (buffer overflow) . 512kB . : (Still Images) VCD/SVCD . DV (Digital Video) : (Some useful books) : Digital Video and HDTV Charles Poyton (: 1-55860-792-7) Digital Video Compression Peter Symes (: 0-07-142487-3) Video Demystified Keith Jack (: 1-878707-56-6) : Fernsehtechnik Rudolf Maeusl (: 3-7785-2374-0) Professionelle Videotechnik - analoge und digitale Grundlagen U. Schmidt (: 3-540-43974-9) Digitale Film- und Videotechnik U. Schmidt (: 3-446-21827-0) ! lavrec (lavrec examples) lavrec : > lavrec -f a -i P -d 2 record.avi -f a AVI -i P SVHS-In PAL -d 2 (352x288) record.avi . Ctrl-C ( : Strg-C) . -f A -f a . : > lavrec -f q -i n -d 1 -q 80 -s -l 80 -R l -U record.avi -f q Quicktime -i n Composite-In NTSC -d 1 (640x480) -q 80 80% -s ( ) -l 80 80% -R l Line-In -U lavrec mmap read mmap . . . lavrec -l -1 . . (-d 1) : BUZ LML33 720x576 DC10 DC30 768x576. : > lavrec -w -f a -i S -d 2 -l -1 record%02d.avi -w ( Enter) -f a AVI -i S SECAM SVHS-Input ( SECAM -i s ) -d 2 -l -1 record%02d.avi lavrec record00.avi 1.6GB ( ) record01.avi . 1.9.0 mjpegtools AVI 2GB . . : > lavrec -f a -i t -q 80 -d 2 -C europe-west:SE20 test.avi -f a AVI -i t (tuner) -q 80 80% -d 2 (352x288) -C -it -iT ( : ) Marvel G200/G400 Matrox Millenium G200/G400 Rainbow Runner ( BTTV ). Marvel/Linux : : > lavrec -f a -i p -g 352x288 -q 80 -s -l 70 -R l --software-encoding test03.avi -g 352x288 --software-encoding . bttv . . video4linux ( brooktree-848/878) zoran . (Other recording hints) lavtools file*.avi . : (man-page) . . -d 2 80% . 40% "" . -d 2 VHS (** !). Marvel (-d 1) 50 . (-q 60) (framedrop) . VCD -d 2 . -d 1/2/4 . : -d 21. NTSC 352x480 . SVCD -d 12 . -d 12 NTSC 720x288 . lavrec (Typical lavrec output) 0.06.14:22 int: 00040 lst:0 ins:0 del:0 ae:0 td1=0.014 td2=0.029 lavrec . int: . lst: (lost frames). ins del: (sync). ae: . td1 td2 . (int) (frame interval): ( NTSC) ( PAL/SECAM) . / . (lst) (lost frames): ( CPU ...). (decimation ) . (ins, del) : -> . . . (ae) (audio errors): . 0 . (td1, td2) (time difference): 0 (--synchronization!=2 ). (Interlace field order) (interlace field order) mjpegtools . (top field - ) (bottom field - ) . : PAL . . ( ) ** . . * * / . . (juddering) ("slicing") . . ** . . ("juddering") . . ( ). ! . . . : (Interlacing problem) / ** . . . glav lavplay -F/--flicker . . yuvplay : > lav2yuv | ... | yuvplay yuvplay . ("shifted") . -T BOTT_FORWARD/TOP_FORWARD yuvcorrect . MJPEG (debug) : > lav2yuv -v 2 the_mjpeg_file > /dev/null -f a -F A . . . yuvcorrect -T LINE_SWITCH . . ( (-z b|t) mpeg2enc ). : > mkdir pnm > lav2yuv -f 40 video.avi | y4mtoppm | pnmsplit - pnm/image%d.pnm > rm pnm/image?.pnm > cd pnm > xv . lav2yuv -f 40 stdout . y4mtoppm pnm pnmsplit . pnmsplit %0xd . . ( xv) . . . ( ) . (comb effects) . . : ( ) ... -T BOTT_FORWARD TOP_FORWARD yuvcorrect . (/) . yuvcorrect -M LINE_SWITCH -z (b|t) mpeg2enc . yuvcorrect : > lav2yuv -f 40 video.avi | yuvcorrect -T OPTION | y4mtoppm | pnmsplit - pnm/image%d.pnm "OPTION" . . . NTSC NTSC "3:2" . MPEG yuvkineco . . . . ... . ( ). . mpeg2enc -I 1 -I 2 . ! . MPEG-2 (Transcoding of existing MPEG-2) . (Creating videos from images) jpeg2yuv yuv JPEG . (stdout) mpeg2enc mpeg . yuv : > jpeg2yuv -f 25 -I p -j image%05d.jpg > result.yuv result.yuv yuv (FPS) . -f . image%05d.jpg jpeg image00000.jpg image00001.jpg (05 04 ). -I p (interlacing) . . p (progressive) . jpeg mpeg : > jpeg2yuv -f 25 -I p -j image%05d.jpg | mpeg2enc -o mpegfile.m1v yuv mpeg . mpeg2enc mpeg2enc . yuvscaler jpeg2yuv mpeg2enc . SVCD : > jpeg2yuv -f 25 -I p -j image%05d.jpg | yuvscaler -O SVCD | mpeg2enc -f 4 -o video.m2v -b . -n . image00.jpg image01.jpg : >jpeg2yuv -b 1 -f 25 -I p -n 60 -j image*.jpg | yuv2lav -o stream_without_sound.avi : > lavaddwav stream_without_sound.avi sound.wav stream_with_sound.avi ppm ppmtoy4m . ppmtoy4m . mpeg : >cat *.ppm | ppmtoy4m -o 75 -n 60 -F 25:1 | mpeg2enc -o output.m1v *.ppm ppmtoy4m (cat) . () mpeg2enc output.m1v . -o -n . -F NTSC (30000:1001) PAL -F 25:1 . ppm . >ls *.tga | xargs -n1 tgatoppm | ppmtoy4m | yuvplay (ls *.tga) xargs tgatoppm (-n 1) ppmtoy4m . . xargs (tgatoppm) . convert ImageMagick ( ) : >convert *.gif ppm:- | ppmtoy4m | yuvplay '.jpg' PPM stdout ppmtoy4m y4m .... mplayer (Decoding streams with mplayer) mplayer mplayer mjpegtools mpeg . mplayer 1.0rc2 . >mkfifo stream.yuv >cat stream.yuv | yuv2lav -o mjpeg_wo.avi & >mplayer -nosound -noframedrop -vo yuv4mpeg anyfile.mpg >mplayer -vo null -ao pcm:file=anyfile.wav anyfile.mpg AVI mjpeg . anyfile.wav . lavaddwav AVI . yuv2lav mpeg2enc mjpegtools : > cat stream.yuv | yuvdenoise | yuvscaler -O SVCD | mpeg2enc -f 4 -o video_svcd.m2v wav MP2 mp2enc (cat) . -vo yuv4mpeg mplayer . MPEG-2 mpeg2dec (Decoding MPEG-2 streams with mpeg2dec) mpeg2 mpeg2dec yuv . mjpegtools . mpeg2dec libmpeg2 pgmpipe . pgmtoy4m pgm yuv . pgmtoy4m yuv libmpeg2 . . : > mpeg2dec -s -o pgmpipe ANYTS.VOB | pgmtoy4m -i t -a 10:11 -r 30000:1001 | mpeg2enc -f 8 newvideo.m2v MPEG-2 (Transcoding of existing MPEG-2) . (Other things to know) (Transport streams) DVB . Project X : mpeg . MPEG-2 (Transcoding of existing MPEG-2) . (Checking if recording was successful) lavplay glav . : xawtv lavplay glav . . >lavplay -p S record.avi . CPU . xawtv . : >lavplay -p H record.avi . . . : > lavplay -p C record.avi . > glav record.avi lavplay (GUI) . glav lavplay . (SW) . Composite SVHS OUT . > lav2yuv test.eli | yuvplay . yuvplay . yuvplay . (slow-motion) . : xawtv lavplay glav (HW-Playback) . xawtv !! : glav lavplay !!! : SECAM (..) (monochrome) . : . . . : : Linux Studio. glav (Edit with glav) glav . glav: glav . << >> (Edit List) . lavtools lav2wav lav2yuv lavtrans . <> . lavtools . . . <<>> ( ) : > lavtrans -o short_version.avi -f a editlist.eli -o -f a ( AVI) editlist.eli . <> <> glav . (Unify videos) > lavtrans -o stream.qt -f q record_1.avi record_2.avi ... record_n.avi -o -f q quicktime . glibc . . (Separate sound) > lavtrans -o sound.wav -f w stream.avi wav stream.avi . . : > lav2wav editlist.eli >sound.wav (Separate images) >mkdir jpg; lavtrans -o jpg/image%05d.jpg -f i stream.avi <> . lavtrans stream.avi JPG jpg . : image00000.jpg image00001.jpg . jpg . . jpg . : > lav2yuv -f 1 stream.avi | y4mtoppm -L >file.pnm : > lav2yuv -f 5 ../stream.avi | y4mtoppm | pnmsplit - image%d.pnm . (Creating movie transitions) lavpipe (Philipp Zabel) . : : intro.avi epilogue.mov ( PAL NTSC) intro.avi epilogue.mov . intro.avi epilogue.mov ( ). 352x288 PAL . intro.avi epilogue.mov . : intro.avi intro.avi epilogue.mov epilogue.mov intro.avi : >lav2yuv -o 225 -f 25 intro.avi -o 225 () lav2yuv -f 25 . ( ): > lav2yuv -o -25 intro.avi epilogue.mov: > lav2yuv -f 25 epilogue.mov -o . lavpipe . : > lavpipe "lav2yuv -o 225 -f 25 intro.avi" "lav2yuv -f 25 epilogue.mov" yuv transist.flt . transist.flt (opacity) : -o num [0-255] -O num [0-255] -d num 0 ( ) 255 . ( ) : > transist.flt -o 0 -O 255 -d 25 -s -n -o -f lav2yuv . - . ( -s 30) lav2yuv (-o 30) . -s -n . . yuv yuv2lav : > yuv2lav -f a -q 80 -o transition.avi yuv (stdin) avi (-f a) jpeg 80. : > lavpipe "lav2yuv -o 225 -f 25 intro.avi" "lav2yuv -f 25 epilogue.mov" | transist.flt -o 0 -O 255 -d 25 | yuv2lav -f a -q 80 -o transition.avi LAV ( ) : LAV Edit List PAL 3 intro.avi transition.avi epilogue.mov 0 0 224 1 0 24 2 25 999 glav lavplay lav2yuv mpeg2enc lavtrans lav2yuv|yuv2lav mjpeg . MPEG DIVx . mpeg lav2mpeg . lav2mpeg mpeg1 : >lav2mpeg -a 160 -b 2110 -d 320x240 -m mpeg1 -o output.mpg file.eli mpeg1 2110kBit/sec 160kBit/sec 320x240 mpeg2: lav2mpeg -o mpeg2 -O output.mpg file.eli mpeg2 . . MPEG-1 MPEG-1 . (Stills) VCD/SVCD ( -f 6 / -f 7 mpeg2enc) : VCD/SVCD . vcdimager . (Creating sound) MPEG-1 MPEG-1-Layer2 (MP2) . MPEG-2 MPEG-1-Layer2 MPEG1-Layer3 (MP3) . MP3 VCD . MP3 DVD . MP2 MPEG-2 ( DVD ) MPEG2 MP3 . mp2enc MP2 . toolame MP2 . Toolame mp2enc (resampling 48000 44100 ) . SVCD 48000 . MP3 . : > lav2wav stream.avi | mp2enc -o sound.mp2 mpeg stream.avi 224kBit/sec 48kHz . 44.1kHz mp2enc 48kHz . 44.1kHz -r 44100 mp2enc . : > cat sound.wav | mp2enc -v 2 -V -o sound.mp2 VCD (-V =224 : 44100) wav . -v 2 mp2enc . : > plaympeg sound.mp2 : plaympeg MPEG-1 . mpg123 . VLC mplayer . (Converting video) MPEG-1 MPEG-2. . / (Bitrate) (Search radius) ... . mpeg2enc mpeg2enc . : lav2yuv stream.avi stream1.avi | mpeg2enc -o video.m1v (1152kBit/sec) . VCD . %nd n . mpeg2enc (Non-interlaced Progressive) MPEG-1 . (Interlaced) . : > lav2yuv streami%02d.avi | mpeg2enc -b 1500 -r 16 -o video.m1v mpeg2enc . x . . . . ( ) ( ) ( ) . stream%02d.avi 00 01 ... . (Scaling) yuvscaler . DC10 +DC10 -d 1 (768x576) -d 2 (384x288 PAL/SECAM) -d 1 (640x480 NTSC) . : >yuvscaler -h : > lav2yuv stream.avi | yuvscaler -O VCD | mpeg2enc -o video.m1v VCD PAL/SECAM x NTSC x . yuv MPEG-1 . SVCD x ( NTSC) x ( PAL/SECAM) : > lav2yuv stream.avi | yuvscaler -O SVCD -M BICUBIC | mpeg2enc -o video.m1v (-M) yuvscaler (Downscaling) (Bicubic) (Resample) . (Upscaling) . : > lav2yuv stream.avi | yuvscaler -I USE_450x340+20+30 -O SIZE_320x200 | mpeg2enc -o video.m1v . : yuvscaler : -I ACTIVE_WidthxHeight+WidthOffset+HeightOffset : y4mscaler (High quality scaling: y4mscaler) y4mscaler . . (Subsampling) (Chroma Modes) . . : > cat raw.yuv | y4mscaler -O infer=CLIP -O preset=DVD -O sar=PAL_Wide | mpeg2enc video.m1v y4mscaler PAL . sar (16:9) . infer=clip y4mscaler (Clip ) . : > mpeg2dec -o pgmpipe deluxe.m2v | pgmtoy4m -x 420jpeg -r 25:1 -i t | y4mscaler -I sar=64:36 -I active=344x476+100+48 -O preset=DVD | mpeg2enc -f 8 video.m1v y4mscaler . PAL MPEG x 16:9 4:3 . 4:3 . (SAR) . y4mscaler . active y4mscaler yuvscaler . DVD . y4mscaler PAL . 16:9 DVD_WIDE . : > mplayer video.m1v : . . . : . . : MPEG-1 ( VBR) !! -q 15 mpeg2enc -b . MPEG-1 (VBR) -b ( ) . : video.mpg . ( : video_b1500_r16_41_21.m1v). <<.mp2>> MPEG-1 <<.m1v>> MPEG-2 <<.m2v>> . . .mpg (Multiplex ) MPEG-1/2 . (Putting the streams together) : > mplex sound.mp2 video.m1v -o my_video.m1v sound.mp2 video.m1v my_video.mpg () . MPEG . ( gtv) SMPEG MPEG-1 . ( MPEG-2 MPEG-1 ) : xmovie xine MPlayer VLC. : -S mpeg2enc mplex %d (: -o test%d.mpg) (Split) . MPEG ! : xine (Seeking) . mplayer << />> (VBR) . ( mplayer ). . (VBR): mpeg2enc ( ) mplex VBR ( -V). ** . mplex mpeg2enc . MPEG-1 ( ) 400K . : > mplex -V -r 1740 audio.mp2 video_vbr.m1v -o vbr_stream.mpg . mplex (Single pass) . : + + mplex. (-b 224) ( -b 1500 -q 9 ) x . : > plaympeg my_video.mpg > mplayer my_video.mpg MPEG-1 (Creating MPEG-1 Videos) MPEG-1 MP2 MPEG-1 . MPEG-1 VCD . VBR ( ) ( VCD CBR ) CBR ( ) . MPEG-1 x PAL x NTSC MPEG-2 . MPEG-1 MPEG-2 . MPEG-1 (Interlaced) . MPEG-2 . MPEG-1 (MPEG-1 Audio creation Example) > lav2wav editlist.eli | mp2enc -r 44100 -o sound.mp2 mp2enc ( -b) . -r 44100 mp2enc 44.1kHz . > lav2wav editlist.eli | mp2enc -b 128 -m -o sound.mp2 . (editlistfile ) glav glav mp2enc . lavtrans . MPEG-1 (MPEG-1 Video creation example) > lav2yuv editlist.eli | mpeg2enc -b 2000 -r 24 -q 6 -o video.m1v mpeg2enc ( ) -q . . : mpeg2enc 'q' MPEG << >> (CBR) ( ) ( ) . (Broadcasting) DVD VCD . <<>> . 'q' mpeg2enc (VBR) . . 'q' . 'q' ( ) . ( 10Mbps) q . : > lav2yuv stream.avi | yuvscaler -I ACTIVE_352x240+0+24 | mpeg2enc -b 1152 -r 16 -4 1 -2 1 -o video.m1v . -I ACTIVE yuvscaler (x) . . VCD . jpeg : > lavtrans -f i -i 100 -o frame.jpg test.avi . -4 1 -2 1 . x ( PAL -d 2 ) / . NTSC PAL . . . ( ) . : > lav2yuv stream.avi | mpeg2enc -b 1500 -n s -g 6 -G 20 -P -o video.m1v stream.avi : -b 1500 -n s SECAM -P B I/P . MPEG-1 B I/P -g 6 -G 20 (GOP) . GOP ( -G) ( -g) . VCD . SVCD . min-max . : > lav2yuv stream*.avi | mpeg2enc -b 1500 -r 16 -4 1 -2 1 -S 630 -B 260 -o video_n1_1500_r16_41_21_S630_B240.m1v lav2yuv . mpeg2enc . -S 630 mpeg2enc mplex 630 . -B ( mplex) . -B mplex . scripts . MPEG-1 (MPEG-1 Multiplexing Example) : >mplex sound.mp2 video.m1v -o my_video.mpg sound.mp2 video.m1v my_video.mpg . CBR ( -q mpeg2enc ). : mplex -V -r 1740 audio.mp2 video_vbr.m1v -o vbr_stream.mpg . mplex . : + + mplex. (-b 224) ( -b 1500 -q 9 ) x . MPEG-2 (Creating MPEG-2 Videos) MPEG-2 x NTSC x PAL . MPEG-2 . MPEG-2 (MP3) . mp3 . MP3 DVD . MP2 ( ) . VBR . MPEG-2 VBR . MPEG-2 . MPEG-1 . MPEG-1 . MPEG-2 (MPEG-2 audio creation example) > lav2wav editlist.eli | mp2enc -o sound.mp2 mp2enc ( -b) . -r 44100 mpeg2enc 44.1kHz . MP3 . . MPEG-2 (MPEG-2 Video creation example) > lav2yuv editlist.eli | mpeg2enc -f 3 -b 3000 -q 9 -o video.m2v MPEG-2. -f 3 mpeg2enc MPEG-2 . MPEG-2 -b -q VBR . VBR -b mpeg2enc . -q mpeg2enc . -b . > lav2yuv editlist.eli | mpeg2enc -f 3 -4 1 -2 1 -q7 -b 4500 -V 300 -P -g 6 -G 18 -I 1 -o video.m2v MPEG-2 -4 1 -2 1 . -b 4500 -q 7 mpeg2enc . -V . . GOP -g -G . GOP DCT/iDCT . -P B I/P . -I 1 mpeg2enc . ( ) mpeg2enc . VCD mpeg2enc . yuvdeinterlace (Deinterlace) mpeg2enc . -I 0 mpeg2enc . . -I 0 . ( ) . . VBR (Which values should be used for VBR Encoding?) -q . . . . -b . -q -b . mplex . ( ) . ( ) . SVCD . SVCD ( ). DVD SVCD . SVCD/DVD ( ) . . ( ) . SVCD/DVD : q <= 6 q <= 8 q >= 10 q >= 11 q >= 13 : () () MPEG-2 (Progressive) (Interlaced) . MPEG-2 . ( ) . . yuvdeinterlace yuvcorrect -T NOT_INTERLACED . (-I) mpeg2enc 0 . . . ( ) . ( ) . yuvdeinterlace . DVD . ( ) . . yuvdeinterlace mpeg2enc -I 0 . ( yuvdeinterlace mpeg2enc -I 0 ). (Pause) (Flicker-free) . () () ( ) . . ( yuvdeinterlace mpeg2enc -I 0). MPEG-2 (MPEG-2 Multiplexing example) > mplex -f 3 -b 300 -r 4750 -V audio.mp3 video.m2v -o final.mpg ( mp3 mpeg2) (final.mpg) () . -f 3 mplex . -b . -r + + mplex . -V VBR . mplex CBR -r . . Video CD (VCD) VCD MPEG-1 . VCD (Philips) . CD (1x) () . VCD . (Bitrate) MP2 . -q GOP . NTSC 352x240 PAL 352x288 . VCD DVD DVD GOP . VCD > lav2wav stream.avi | mp2enc -V -o sound.mp2 -V VCD 2.0 . . . . . . . VCD > lav2yuv stream.avi | yuvscaler -O VCD | mpeg2enc -f 1 -r 16 -o video.mpg VCD -f 1 mpeg2enc . VCD ( Avex) MPEG -r . > lav2yuv streams.eli | mpeg2enc -f 1 -4 1 -2 1 -S 630 -B 260 -P -o video.m1v '-S 630' mpeg2enc mplex . -B ( mplex) . -B mplex . scripts . (Multiplexed) CD . (-B) . -B mpeg2enc . CD ( ) -S mpeg2enc mplex . (Multiplexing) VCD > mplex -f 1 sound.mp2 video.mpg -o vcd_out.mpg -f 1 ! CD VCD . vcdimager : > vcdimager testvideo.mpg videocd.bin videocd.cue cdrdao . cdrdao . cdrdao Sourceforge . (Notes) MPEG-1 ( ) . XA MODE2 CD-R . ( DTV DVD ) VCD . : MPEG-1 (VBR -q) . . MPEG-1 SVCD vcdimager . vcdimager ( ) . . MPEG XA mode 2 CD ( / ). vcdimager vcdxrip ( vcdimager) ( ) . SVCD XVCD DVD . SVCD mplex . MPEG DVD mpeg2enc/mplex . SVCD VCD . . DVD SVCD VCD . -h mpeg2enc VCD . SVCD . MPEG SVCD VCD . SVCD (Creating SVCD) Super Video CD (SVCD) Video CD . SVCD . SVCD (Philips) . ( -d 1 PAL 720x576 ). SVCD NTSC 480x480 PAL 480x576 . SVCD > lav2wav stream.avi | mp2enc -V -e -o sound.mp2 SVCD . . VBR ( ) . -e CRC . SVCD CRC CRC . CRC . MPEG-1 layer-II : ( ) = 144 * ( ) / ( ) VCD CRC . . MONO CRC . . SVCD > lav2yuv stream.avi | yuvscaler -O SVCD | mpeg2enc -f 4 -q 7 -I 1 -V 200 -o video.m2v -f 4 mpeg2enc SVCD . -q 7 mpeg2enc (VBR) . -I 1 mpeg2enc (Interlaced) . -I 0 ( Progressive ) PAL . SVCD ( ) . . SVCD ( ) . SVCD (VBR) MPEG-2 VBR . -f 4 GOP -g 6 -G 18 . . -f 4 mpeg2enc (-b) (-r) . -f 5 mpeg2enc . PAL ( / ): > lav2yuv stream.avi | yuvscaler -O SVCD | mpeg2enc -f 4 -I 0 -V 300 -o video.m2v . PAL << >> ( ). -I 0 . NTSC ( / ) . <> NTSC **. -S -B . CD SVCD > mplex -f 4 -b 300 -r 2750 sound.mp2 video.m2v -o svcd_out.mpg -f 4 mplex SVCD . -r 2750 + + . -b 300 ( -V mpeg2enc ). SVCD : > vcdimager -t svcd testvideo.mpg videocd.bin videocd.cue cdrdao . cdrdao . : VCD/SVCD <<>> -f 2 -f 5 mplex . : VCD SVCD . . . CD ( ) . DVD (Creating DVDs) : . . DVD . DVD . Ricoh DVD+RW DVD-RAM DVD-R . DVD . DVD + - . DVD . VOB IFO BUP dvdauthor ( Sourceforge). DVD > lav2wav stream.eli | mp2enc -o sound.mp2 . mp2enc . mp2enc (Resample) . toolame ( mp2enc ). DVD > lav2yuv stream.eli | mpeg2enc -f 8 -o video.m2v -f 8 MPEG-2 DVD . . . mpeg2enc VCD/SVCD . . ( VHS) yuvdenoise . : lav2yuv moby.eli | yuvdenoise | mpeg2enc -f 8 -q 7 -4 1 -2 1 -P -I 0 -N -o video_DVD.m2v DVD > mplex -f 8 sound.mp2 video.m2v -o my_dvdlikestream.mpg -f 8 MPEG DVD . mplex DVD DVD . -o . DVD dvdauthor . : > dvdauthor -o output/ stream1.mpg stream2.mpg ... my_dvdlikestream.mpg; dvdauthor -T -o output/ AUDIO_TS VIDEO_TS . DVD+-R/+-RW : growisofs -Z /dev/scd2 -dvd-video mydvd/ DVD+RW/+R . cdrtools dvd-video . cdrtools 1.11a27 . DVD . dvdauthor . ! DIVX (Creating DIVX Videos) lav2avi.sh DIVX mencoder mplayer . mencoder mencoder/mplayer . ( ) . lav2avi.sh ( mencoder ). preferedSize . encoderParam . mplayer/mencoder . ( ) avi. preferedSize ( ) . . divx ( ). : - - - mplayer/mencoder ( ) . mencoder/mplayer ( TOOLS/). ffmpeg (lavc) . . mp3 . (Pipes) . glav . FIFO . : frameno.avi . frameno.avi lavc_stats.txt . frameno.avi lavc_stats.txt movie2.avi . frameno.avi . frameno.avi . (Optimizing the stream) (CBR) . (VBR) . : > lav2yuv stream.avi | yuvmedianfilter | mpeg2enc -o video.m1v yuvmedianfilter . . (Soft) . . . -r () . : ! yuvmedianfilter (Luma) (Chroma) . . (-t 0 -T 0 ). > lav2yuv stream.avi | yuvmedianfilter -r 3 -t 4 -T 0 | mpeg2enc -o video.m1v (Luma) ( ) (Chroma) . . ( ) . : > lav2yuv stream.avi | yuvdenoise | mpeg2enc -o video.m1v yuvdenoise . . yuvdenoise . (-g/t). ( VHS 8mm ). (Scaler) . yuvdenoise . yuvdenoise . : -g 0,255,255 -t 2,2,2. -h/--keep-hf mpeg2enc . mpeg2enc . -h ( ) . ( -b) . mpeg2enc -N/--reduce-HF . . . . -N . . . ( ) . . . -N . . . -N . ( VHS) . yuvmedianfilter (-T) () . (-t) ( ) . yuvdenoise . yuvdenoise yuvmedianfilter -N mpeg2enc ( ) . ( ) / . . -N . . . . ( ). . (/) ( /) . yuvdenoise yuvmedianfilter yuvmedianfilter (Scaling). yuvmedianfilter . yuvdenoise . yuvmedianfilter . . ( ) () . / . : > lav2yuv stream.avi | yuvkineco -F 1 | mpeg2enc -o video.m1v yuvkineco NTSC . 30000.0/1001.0 ( .) 24000.0/1001.0 ( .) << 2-3 pulldown>> README.2-3pulldown . yuvkineco NTSC . yuvdenoise : > lav2yuv stream.avi | yuvkineco | yuvdenoise | mpeg2enc -o video.m1v : > lav2yuv stream.avi | yuvycsnoise | mpeg2enc -o video.m1v yuvycsnoise NTSC Y/C NTSC . Y/C ( /) / . yuvycsnoise . / . DV ( ) . yuvycsnoise NTSC : ( ) (. ) Y/C yuvkineco yuvycsnoise README yuvfilters . yuvplay mpeg2enc . yuvplay yuv . : > lav2yuv stream.eli | yuvdenoise -options | yuvscaler -options | yuvplay DVD : : ( ) yuvdenoise : mpeg2enc --reduce-hf : yuvdenoise + yuvmedianfilter : yuvdenoise + mpeg2enc --reduce-hf : : -N|--reduce-hf yuvdenoise . yuvdenoise yuvdenoise mpeg2enc --reduce-hf . . . . . -N 1.0 . -N 1.0 . ! ( ) . mpeg2enc . mpeg2enc --keep-hf|-h . : . mpeg2enc -E|--unit-coeff-elim . . << >> (Unit Coefficient Elimination) . ( ) (Skip) . (DC) (AC) . (AC) . - + . . . -K|--custom-quant-matrices . . kvcd tmpgenc hi-res . -K hi-res ( ). . (-q 8-10) . . . -q ( ) . (Scaling and offset correction) (Converting video) . . yuvscaler : lav2yuv test.eli | yuvscaler -I USE_400x400+50+100 | yuvplay . yuvscaler . yuvplay . () . Yuvscaler . HeightOffset . ( widthoffset heightoffset) . . . . y4mshift . lav2yuv test.eli | y4mshift -n 20 | mpeg2enc -f 3 -b 4000 -q 10 -o video.m2v . . . . . CRT ( ) . ( ) . . ( ). . . . . (Frame rate conversion) PAL NTSC 24FPS 24000:1001 NTSC. yuvfps . . YUV . () . . . PAL NTSC (30000:1001 FPS FPS) 480/576 ( NTSC / PAL) . PAL NTSC ( 24000:1001) NTSC FILM (24FPS) : (480 Lines * 24 FPS) / (576 Lines * 25FPS). yuvdenoise . : > lav2yuv video.eli | yuvfps -r 30000:1001 | yuvscaler -O SVCD | mpeg2enc -f 4 -o video_ntsc_svcd.m2v NTSC 30000:1001 FPS ( ) SVCD . : > lav2yuv video.eli | yuvdenoise | yuvfps -r 24000:1001 | yuvscaler -O SIZE_720x480 | mpeg2enc -f 3 -b 4000 -q 7 -o video_ntsc.m2v . . yuvscaler mpeg2enc . -n n/p/s . yuv : > lav2yuv video.eli | yuvfps -r 25:1 -c | mpeg2enc -f 3 -b 4000 -q 7 -o video_pal.m2v -c yuvfps . -r 25:1 yuvfps PAL 25 FPS. . : > lav2yuv video.eli | yuvfps -s 24:1 -r 25:1 | mpeg2enc -o video.m1v MPEG-2 (Transcoding of existing MPEG-2) () MPEG-2 DVD . VCD 1152 kbps MPEG-1 . . . . 150ms . ac3dec mpeg2dec . : mpeg2dec ac3dec. mpg123 mplayer . sox toolame . mpegtranscode . : > mjpegtranscode -V -o vcd_stream mpeg2src.mpg -V VCD -o vcd_stream vcd_stream.m1v () vcd_stream.mp2 () mpeg2src.mpg : > SYNC 234 mSec / . ( ) "-v" mplex extract_a52 "SYNC" "s" . mjpegtranscode SYNC . : > mplex -f 1 -O 234 vcd_stream.mp2 vcd_stream.m1v -o lowrate.mpg -f 1 VCD -O 234 mjpegtranscoding vcd_stream.mp2 & vcd_stream.m1v lowrate.mpg VCD SVCD ( MPEG-2) : > mjpegtranscode -S -o svcd_stream mpeg2src.mpg : > mplex -f 4 -O 234 svcd_stream.mp2 svcd_stream.m2v -o lowrate.mpg : NTSC VCD : NTSC . mpeg2dec . . . : > mpeg2dec -s -o pgmpipe mpeg2src.mpg | pgmtoy4m -a 59:54 -r 25:1 -i t | mpeg2enc -I 0 -f 4 -q 9 -V 230 -p -P -o svcd_stream.m2v -p mpeg2enc : . -p . VCD -p mpeg1 . (Doing every step on your own) : > cat test2.mpg | extract_a52 - -s | ac3dec -o wav -p sound.wav 2>/dev/null "SYNC" . 2>/dev/null ac3dec /dev/null . mpeg : > cat sound.wav | mp2enc -V -v 2 -o audio.mp2 -V VCD 48kHz 44.1kHz -v 2 mp2enc . -o . cat test2.mpg | extract_a52 - -s | ac3dec -o wav | sox -t wav /dev/stdin -t wav -r 44100 /dev/stdout | toolame -p 2 -b 224 /dev/stdin audio.mp2 "SYNC" . ( "SYNC_value" ) . VCD : > mpeg2dec -s -o pgmpipe test2.mpg | pgmtoy4m -a 59:54 -r 25:1 -i t | mpeg2enc -s -o video_vcd.m1v mpeg2dec: -s mpeg2dec -o pgmpipe pgmtoy4m : > mplex -f 1 -O SYNC_value audio.mp2 video_vcd.m1v -o vcd_stream.mpg -f 1 VCD -O SYNC_value SVCD : > mpeg2dec -s -o mpeg2src.mpg | pgmtoy4m -a 59:54 -r 25:1 -i t | mpeg2enc -f 4 -q 9 -V 230 -o video_svcd.mpg -q 9 ( VBR) ( q: 12) -V 230 -o : > mplex -f 4 -b 230 audio.mp2 video_svcd -o svcd_stream.mpg -f 4 SVCD -b 200 . : > mpeg2dec -s -o pgmpipe test2.mpg | pgmtoy4m -a 59:54 -r 25:1 -i t | yuvscaler -O SIZE_320x200 -O NOT_INTERLACED | mpeg2enc -o strange_video.m1v mpeg . bbdmux bbtools . . (Brent Beyler) "bbtools linux -suse -blackbox" . : > bbdmux myvideo.mpg : Found stream id 0xE0 = Video Stream 0 Found stream id 0xC0 = MPEG Audio Stream 0 Found stream id 0xBE = Padding Stream : > bbdmux myvideo.mpg 0xC0 audio.mp1 wav: > mpg123 -w audio.wav audio.m1v : > bbdmux myvideo.mpg 0xE0 video.m1v mjpeg avi: > mpeg2dec -o pgmpipe video.m1v | pgmtoy4m -a 59:54 -r 25:1 -i t | yuv2lav -f a -o test.avi avi: > lavaddwav test.avi audio.wav final.avi -o YUV . YUVh ! . ac3 . : > cat test2.mpg | extract_a52 - -s | ac3dec -o wav 2>dev/null >sound.wav : > mpeg2dec -s -o pgmpipe | pgmtoy4m -a 59:54 -r 25:1 -i t | yuvscaler -O VCD | yuv2lav -f a -q 85 -w sound.wav -o test.avi : . SVCD . mjpeg . Athlon 500 . ! (Trading Quality/Speed) -4 -2 . mpeg2enc ( * * ) . -4 1 -2 1 . -4 4 -2 4 . mpeg2enc ( ) . . . . (Creating streams for software players) MPEG DVD VCD . . ( ) ( -f / -q mpeg2enc) . MPEG layer 3 ( "MP3") . MP3 lame Kbps Kbps layer 2 Kbps . (SMP) (SMP and distributed encoding) . . (SMP) . mpeg2enc -M --multi-thread [0..32] . mpeg2enc . (-M 1) mpeg2enc : . ( ) . RAM -M 0 . SMP ( -M 2) mpeg2enc . -M 2 -M 3 . . SMP ( ) Athlon MP 2600 -M 2 ( ) . buffer bfr . -M . yuvdenoise yuvmedianfilter MPEG . 'rsh' 'rcmd' . : > rsh machine1 lav2yuv "mycapture.eli | yuvscaler -O SVCD | yuvdenoise" | mpeg2enc -f 4 -o mycapture.m2vi MPEG "machine1" . "machine1" . "NFS" . MPEG : > rsh machine1 "lav2yuv mycapture.eli | yuvscaler -O SVCD" | yuvdenoise | rsh machine3 mpeg2enc -f 4 -o mycapture.m2v : . . Pentium-III 100Mbps . 100MBps ( !) . rshd ("Remote Shell Daemon" rsh) "rsh" BSD . ! (Interoperability) Quicktime lavrec Broadcast2000 . Broadcast2000 heroinewarrior . mjpeg AVI streamer xawtv . Zoran . NuppelVideo mjpeg . (MAC) mjpeg : MPEG : dxr2 xine xmovie mplayer vlc MPEG-1: gtv MS Media player DVD ( DVD) : -f 1 MS Media player MPEG-1 . (Bernhard Praschinger) : HINTS Andrew Stevens . Wolfgang Goeller Steven M. Schultz . . (SEE ALSO) mjpeg : http://mjpeg.sourceforge.net http://sourceforge.net/projects/mjpeg vcdimager : http://www.vcdimager.org cdrdao : http://cdrdao.sourceforge.net/index.html Linux Video Studio : http://ronald.bitfreak.net lavtools: jpeg2yuv(1), lav2wav(1), lav2yuv(1), lavpipe(1), lavplay(1), lavrec(1), lavtrans(1), lavinfo(1), mp2enc(1), mpeg2enc(1), mplex(1), ppmtoy4m(1), pnmtoy4m(1), yuv2lav(1), yuvdenoise(1), yuvkineco(1), yuvmedianfilter(1), yuvplay(1), yuvfps(1), yuvscaler(1), yuvycsnoise(1), y4mblack(1), y4mcolorbars(1), y4mdenoise(1), y4mhist(1), y4minterlace(1), y4mshift(1), y4mstabilizer(1), y4mtopnm(1), y4mtoppm(1). : lavaddwaw, glav MJPEG tools manual MJPEG Linux Square mjpegtools(1)