Blog CVD Guides Home Authoring
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:

Blog CVD Guides Technical Specifications
CVD Technical Specifications

What can and cannot be specified

The original C-Cube/consortium CVD specification is not publicly available, and the full text of SJ/T 11196-1998 was not obtained for this research. Almost every published CVD “specification” is therefore inferred from SVCD (Philips SVCD 1.0 / IEC 62107 / the Chinese Super VCD regime) plus the known resolution and subtitle differences. Values below are marked as directly attested for CVD where the 1998 Chinese press or Western tooling documentation says so, and otherwise inherited from the SVCD stack that CVD shares.

Physical disc and sector formats

A CVD is a standard 120 mm CD or CD-R using the CD-ROM XA / CD-i Bridge layout defined in the White Book. Track 1 is Mode 2 Form 1 with an ISO 9660 file system holding the metadata files (INFO, ENTRIES, PSD, LOT, SEARCH, TRACKS) and, optionally, the segment play-item area. Tracks 2 onwards are Mode 2 Form 2 MPEG tracks, one per sequence (up to 98). Form 1 sectors carry 2,048 bytes of user data with EDC and Layer-2 ECC; Form 2 sectors carry 2,324 bytes with EDC but no Layer-2 ECC-about 14% more payload. Guangming Daily’s 3 November 1998 comparison states that CVD and SVCD were “completely identical in physical format and file format, both following the relevant international and national standards.”

Disc anatomy follows the VCDImager description of Super Video CD layout: lead-in and TOC; a mandatory 150-sector pregap; an ISO 9660 track with the Primary Volume Descriptor at LSN 16 and the VCD info area at 00:04:00; an optional segment area of up to 1,980 segments of 150 sectors; then the MPEG Form 2 tracks, each preceded by a pregap of at least 150 sectors; a 150-sector postgap; and the lead-out. CVD players used 2× mechanisms; Guangming Daily associates CVD hardware with a Philips double-speed mechanism and CD7 digital servo, against a Sony double-speed mechanism on the SVCD side in the same comparison.

Capacity, data rate and playing time

Quantity Result
Raw 2× Form 2 throughput 150 sectors/s × 2,324 bytes × 8 ≈ 2,788.8 kbps
80-minute CD-R capacity (Form 2) ≈ 836.6 MB (≈ 798 MiB)
74-minute CD-R capacity (Form 2) ≈ 773.9 MB
Playing time at full 2×, 80-min blank ≈ 40 min (less ISO track and gaps)
Playing time at full 2×, 74-min blank ≈ 37 min
At ~1,800 kbps video + 224 kbps audio ≈ 53 min on an 80-min blank

The raw 2× figure explains why the combined audio-video ceiling is usually quoted as about 2.7 Mbps (Wikipedia) or 2,778 kbps (technical summaries). The ubiquitous “35-45 minutes per disc” figure is simply CD capacity read at 2×. Longer programmes need lower average VBR rates, typically 1.5-2.0 Mbps for sixty to eighty minutes.

Video and audio parameters

Parameter CVD value Basis
Codec MPEG-2, Main Profile @ Main Level 1998 press (“same decompression technology as DVD”); Western references
Resolution (NTSC) 352×480 at 29.97 fps Wikipedia; DeVeDe FAQ; VideoHelp
Resolution (PAL/SECAM) 352×576 at 25 fps same
Film content 23.976 fps with 3:2 pulldown flags Inherited from SVCD
Also permitted in 1998 2/3 D1 (480-wide) sources Guangming Daily 3 Nov 1998
Rate control VBR (CBR allowed) Guangming Daily; inherited
Maximum video rate ≈ 2,600 kbps (2,516-2,520 in practical recipes) Inherited; ffmpeg SVCD preset; SatStorm
VBV buffer 1,835,008 bits (224 KiB) in ffmpeg’s SVCD preset; 230 KB in mplex Tool defaults
Aspect ratio 4:3 or 16:9 (anamorphic) Inherited

Whether CVD was strictly 352-wide or also allowed 480-wide video is not settled. Western sources define CVD by its 352 width. Guangming Daily says CVD “suits both 1/2 D1 and 2/3 D1” sources while SVCD suited only 2/3 D1. Both claims are kept. Pixels per bit favour CVD: 352×576 is 202,752 pixels per frame against SVCD’s 480×576 at 276,480, so at the same bitrate CVD spends roughly a third more bits per pixel. That is the engineering argument for the format. Marketing-era horizontal resolution claims ranged from “up to 400 lines” (makers, July 1998) and “350-400 lines” (Jinzheng) to “about 280 lines” for early 1/2 D1 discs in a December 1998 Wenzhai Bao piece written from a pro-SVCD framing.

Audio is MPEG-1 Layer II at 44.1 kHz, typically 224 kbps within a 32-384 kbps range inherited from SVCD documentation. Up to two stereo or four mono tracks were marketed for karaoke (vocal/instrumental) or four language dubs. MPEG-2 multichannel 5.1 is allowed in the SVCD family but rarely supported; Guangming Daily notes that a “5.1-channel CVD scheme” had already been announced by November 1998. One AnandTech forum user in 2002 described CVD as “basically an SVCD with 352 × 240 VCD resolution and 48 KHz audio.” Every other source gives 352×480/576 and 44.1 kHz. VideoHelp users report that some players accept 48 kHz on CD and some play it too slowly (a Sony S560D is named). Both strands are kept. For DVD use, 44.1 kHz audio is not legal and must be resampled to 48 kHz.

File system, metadata and MPEG constraints

CVD uses the SVCD directory tree. From the GNU VCDImager manual the important paths are /SVCD/INFO.SVD (system ID “SUPERVCD”), ENTRIES.SVD, LOT.SVD, PSD.SVD, SEARCH.DAT, TRACKS.SVD, plus /MPEG2/ (or legacy /MPEGAV/) sequence tracks, /SEGMENT/ play items, and optional /EXT/ scan or caption files. VCDImager lists “SUPERVCD” as the INFO.SVD system ID for SVCD, XVCD and CVD, and “HQ-VCD” for HQ-VCD. There is no documented CVD-only identifier. Wenzhai Bao’s December 1998 report that CVD and SVCD players used different “disc identifiers” (识别码) to lock each other out suggests proprietary variants existed in practice, but no documentation of those identifiers was found.

Chinese legacy variants documented in VCDImager’s svcd vcd30 build options include the non-compliant /MPEGAV folder (EnReach I-Author) instead of /MPEG2, the deprecated ENTRYSVD signature, and a “chinese /SVCD/TRACKS.SVD format which differs from the format defined in the IEC-62107 specification.” The vcd-info tool also contains a heuristic “CVD interpretation (probably)” when parsing TRACKS.SVD, confirming that real CVD discs were seen with a distinct TRACKS layout.

Programme streams must be packed in 2,324-byte packs aligned to sector boundaries. Every I-frame must be preceded by a GOP header and a sequence header in the same sector, or entry points and scan tables break. SVCD requires scan-information user data in every I-picture so players can fast-forward and rewind; encoders write placeholders and VCDImager fills them with --update-scan-offsets. Official SVCD streams should signal 540 (4:3) or 720 (16:9) in the display horizontal size field; what CVD streams should carry here is undocumented. Peaks above the 2× ceiling cause stutter on real players even when a software compliance check passes.

Subtitles, menus and “protection”

CVD’s subtitles are the one on-disc feature besides resolution that most clearly separates it from IEC SVCD. CVD-style bitmaps travel in MPEG-PS private_stream_1; they are interlaced 2-bit RLE with a four-entry YUV palette plus highlight palette, metadata after the image data, and up to four streams. They are not in IEC 62107. SVCD OGT (Overlay Graphics and Text) uses Philips’ layout with private_data_id 0x70 and sub-stream IDs selecting channels 0-3; VCDImager notes that OGT is “sadly not part of the IEC62107 specs” either, even though it is the Philips SVCD format. VCDImager’s CVD subtitle documentation was reverse-engineered from submux sample code and “a couple of samples of dubious origin,” documenting tags for duration (0x04), coordinates (0x17/0x1f), palettes (0x24-0x27, 0x2c-0x2f), transparency and even/odd row offsets. VLC’s MPEG-PS demuxer is widely understood to map private_stream_1 sub-IDs 0x00-0x03 to CVD subtitles and 0x70-0x73 to SVCD OGT; that mapping was not confirmed from VLC source in the material used here. The 1998 makers marketed “four languages and four on-screen text choices” and “high-definition overlay subtitles.”

Menus inherit SVCD playback control: play lists, selection lists, end lists and (SVCD-only) command lists, with entry points in ENTRIES.SVD acting as chapters. Menu stills are MPEG-2 stills in the segment area at 480×480/576 or high-resolution 704×480/576 under SVCD rules. Makers described this as “two-way interactive playback control” (双向交互式控播); Guangming Daily said SVCD’s VCD 3.0 compatibility gave it an edge in interactivity.

CVD had no documented copy-protection system of its own-no CSS-style encryption, no region code and no Macrovision flag in the standards. The only documented “protection” is the 1998-1999 practice of adding proprietary identifiers and interference codes (干扰数码) so rival makers’ players could not read discs, and the counter-practice of fitting decryption components to players. These were compatibility weapons, not anti-piracy measures. The exact mechanism-modified INFO fields, deliberate errors, or non-standard TRACKS/ENTRIES data-is undocumented.


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: