Home Authoring CVD Discs
Authoring CVD means non-standard SVCD
Every practical home-authoring path for China Video Disc (CVD) builds an SVCD-structured disc that carries 352-wide MPEG-2 video. No mainstream tool implements a separate, fully documented CVD disc type except DeVeDe, and DeVeDe cannot make menus for it. “Standard SVCD” presets will either refuse 352-wide video or silently rescale it to 480, so user or non-standard SVCD modes must be used. The goal is a Mode 2 Form 2 CD that Chinese and many Asian players treat as CVD/SVCD-family media, not a unique ISO type stamped “CVD” in the imager.
Route summary
| Route | Platform | Menus | Chapters | Subtitles | Best for |
|---|---|---|---|---|---|
| DeVeDe / DeVeDeNG | Linux | No | Limited | Burned-in / rendered | Quick discs from files |
| ffmpeg + vcdimager | Any | No | Via splits | Burned-in | Scriptable single-title discs |
| mjpegtools + vcdimager | Linux/macOS | No | Via sequence splits | Burned-in | Fine encoder control, interlaced sources |
| vcdxgen / vcdxbuild XML | Any | Yes | Yes | Muxed streams | Full PBC discs |
| Windows period toolchain | Windows | Yes (VCDEasy, Nero) | Yes | CVD-style or OGT | 2002-era community recipes |
Target parameter sheet
| Setting | PAL CVD | NTSC CVD | NTSC film CVD |
|---|---|---|---|
| Frame size | 352×576 | 352×480 | 352×480 |
| Frame rate | 25 | 29.97 | 23.976 with 3:2 pulldown flags |
| Display aspect | 4:3 or 16:9 anamorphic | 4:3 / 16:9 | 4:3 / 16:9 |
| GOP | ≤15, closed | ≤18, closed | ≤18 (display), closed |
| Video rate | CBR 2,520 or VBR avg 1,800-2,300, max 2,516-2,520 | same | same |
| VBV buffer | 1,835,008 bits (ffmpeg) / 230 KB (mplex) | same | same |
| Audio | MP2, 44,100 Hz, stereo, 224 kbps | same | same |
| Pack size | 2,324 bytes | same | same |
The “2,520 CBR, closed GOPs, max 15 (PAL) / 18 (NTSC)” recipe comes from VideoHelp CCE workflows and SatStorm’s guide. It is community convention, not a quoted specification clause. A 2,520 kbps video peak plus 224 kbps audio stays under the 2,778 kbps mux ceiling with headroom. If the material may later move to DVD, keep a 48 kHz master and resample to 44.1 kHz only for the CD.
Bitrate planning for an 80-minute CD-R (about 836.6 MB payload less roughly 2% for ISO track, gaps and mux overhead) runs approximately: 40 minutes → ~2,730 kbps mux, CBR 2,400-2,520 video; 50 minutes → ~2,190 kbps, VBR avg ~1,900 max 2,520; 60 minutes → ~1,820 kbps, avg ~1,550; 70 minutes → ~1,560 kbps, avg ~1,300; 80 minutes → ~1,370 kbps, avg ~1,100 (or drop audio to 160 kbps). These are planning estimates derived from CD capacity figures, not measured encodes.
DeVeDe / DeVeDeNG
Classic DeVeDe (Python 2 / PyGTK) was rewritten as DeVeDeNG (Python 3 / GTK3) by Sergio Costas (rastersoft). The old GitHub repository was archived on 31 January 2019; development moved to GitLab. DeVeDe’s FAQ defines CVD as “an alternative format to SuperVCD, using a resolution of 352×480 (or 352×576 in PAL)… compatible with DVD standard.” Back-ends include MPlayer/MEncoder or FFmpeg for conversion and VCDImager for VCD/SVCD/CVD imaging. Missing back-ends grey out disc types.
Typical flow: install devede and vcdimager, choose CVD in the disc-type dialog, set PAL or NTSC, add files, set aspect and bitrate, optionally burn in SRT subtitles (custom font via $HOME/.spumux/devedesans.ttf), then burn the BIN/CUE with cdrdao, K3b or Brasero in disc-at-once mode. Known limits: no menus for VCD/SVCD/CVD; 99-file limit; newer versions speed 24 fps film to 25 fps (~4% faster); do not work on FAT32 volumes; subtitle flavour (CVD-style vs OGT) is undocumented-test on hardware.
ffmpeg, mjpegtools and VCDImager
ffmpeg has -target presets for vcd, svcd, dvd and related types, but no cvd target. The documented PAL SVCD preset uses 480×576; documentation states that any user-set parameter overrides the preset, so CVD is the SVCD target with a 352-wide scale. Community recipes use -target pal-svcd or ntsc-svcd, scale=352:576 or 352:480, setsar=1, closed GOPs (-flags +cgop), maxrate about 2516k, bufsize 1835008, MP2 at 44100 Hz / 224k, and for interlaced sources +ilme+ildct with matching field order. Burned-in subtitles should be rendered before scaling. Long titles can be split with segment muxing, checking GOP boundaries with ffprobe.
mjpegtools treats profile -f 5 as user-rate SVCD-bitrate, buffer, GOP and frame size may be non-standard-which is the legitimate CVD path. Profile -f 4 is standard 480-wide SVCD only. A typical pipeline pipes scaled yuv4mpeg into mpeg2enc -f 5, encodes MP2 audio separately, then mplex -f 5 -V -b 230 -r 2750. Do not confuse this with mjpegtools’ anytovcd.sh “cvd” profile, which is half-D1 DVD (mpeg2enc -f 8, AC-3 at 48 kHz), not CD CVD.
Quick mastering without menus:
vcdimager -t svcd -l "MY_CVD" -c cvd.cue -b cvd.bin --update-scan-offsets cvd_pal.mpg
There is no -t cvd. VCDImager documents only 480-wide SVCD resolutions as officially supported, so expect a non-compliance warning for 352-wide video. Use --update-scan-offsets so scan placeholders from the encoder become real FF/REW offsets. If a player rejects a compliant image, --broken-svcd-mode is a last resort.
Menus, chapters and subtitles with vcdxbuild
For PBC menus, generate a starting XML with vcdxgen -t svcd, edit videocd.xml (class=”svcd”), then vcdxbuild. Sequence entry times (seconds) become chapters only if the encoder placed a sequence header, GOP header and I-frame at each entry-closed GOPs help; keep relaxed APS off. Still menus use SVCD still profiles (mpeg2enc -f 7) referenced as segment items; a disc must still contain at least one motion sequence.
Subtitle choice is a trade-off. CVD-style (I-Author format) has the widest support on legacy Chinese and Asian players according to forum users, but the format is reverse-engineered and no maintained open-source muxer is identified-period EnReach I-Author is the named professional path. SVCD OGT (0x70-0x73) is specification-compliant and supported by VLC and many later DVD players; some legacy decks ignore it. Burned-in text plays everywhere but costs bitrate and switchability. Period OGT workflows used SubRip BMPs and winsubmux before VCDImager mastering.
Windows period toolchain and burning
TMPGEnc Plus 2.5: start from the SVCD template, change size to 352×480/576, MPEG-2 around 2,520 kbps, MP2 224 kbps at 44.1 kHz, system stream “Super Video-CD.” Kwag’s KVCD.net templates include XCVD/CVD variants. CCE: 352-wide, CBR 2,520 or multipass VBR, closed GOP, max 15/18; RoBa (“RSVCD”) was the Doom9-era CCE SVCD recipe. VCDEasy (GUI over VCDImager): digitalFAQ notes SVCD, XSVCD and CVD should use SVCD 1.0 type; tell VCDEasy to ignore CVD-related error messages; enable CDRDAO integration. Nero SVCD projects include a compliance check that VideoHelp users say can pass over-rate streams. DVD2SVCD’s authors pushed VCDImager to accept OGT IDs 0x70-0x73 in 2001. Burn BIN/CUE disc-at-once with ImgBurn, CDRWin or cdrdao-never as a data-file project.
cdrdao on Linux/macOS is typically cdrdao write --device /dev/sr0 --speed 4 against the CUE; Linux.com SVCD tutorials preferred even lower speeds for player compatibility. Test CD-RW first: many DVD players prefer one media type over the other for CD-R versus CD-RW.
Troubleshooting and CVD-to-DVD
| Symptom | Likely cause | Fix direction |
|---|---|---|
| “No disc” / data CD | Burned as data files | Re-burn BIN/CUE disc-at-once |
| PC yes, player no | No CD-R support or Philips-only SVCD | Try CD-RW / other player / 480-wide |
| Half-width picture | Aspect / display-size signalling | Correct -aspect; try mpeg2enc SVCD HDS options |
| High-motion stutter | Peaks above 2× mux ceiling | Cap maxrate ≤ 2,516-2,520 |
| FF/REW dead | Missing scan offsets | --update-scan-offsets |
| Chapters ignored | Entry not at access point | Closed GOPs; no relaxed APS |
| No subtitles | Wrong flavour or high bitrate | CVD-style vs OGT; lower max (~1,800 kbps anecdote) |
| Audio slow / pitched | 48 kHz on CD | Resample to 44.1 kHz |
Pre-burn software checks catch many of the same failures. vcd-info against the CUE or BIN dumps INFO/ENTRIES/TRACKS structure; vcdxminfo reports how the imager library sees an MPEG; ffprobe should confirm 352×576 or 352×480, mpeg2video and mp2 at 44100 Hz before you spend a blank. If vcdimager rejects the stream, remux with pack size 2,324 and MP2 at 44.1 kHz before blaming the burner.
Because CVD video is DVD-legal at half-D1 sizes, a CVD can move to DVD-Video without re-encoding the picture: demux, resample audio to 48 kHz (often AC-3), mux as DVD program stream and author with dvdauthor. VideoHelp users recommend that path for VHS archives-capture once at 352×576/480, keep CVD for CD copies and DVD for longer-running sets. Home authoring CVD is therefore less inventing a format than forcing SVCD tooling to keep the 352-wide picture Chinese players expected in 1998.
Further reading on historic video formats
If you want to learn more about historic video formats, get The History of Physical Video Formats from the Frontier by Stephen Driver on Amazon:
