Burnitall a écrit:Ça c'est de l'argumentation
Tu peux y aller il n'y a pas de limite sur le nombre de caractères utilisés pour poster.
En voici encore :
[revised 2006-08-04]
Please check the home page at <http://audioplex.sourceforge.net/>
periodically to view/download the latest version of this file.
------------------------------------------------------------------------
Lplex v 0.2 beta win32
------------------------------------------------------------------------
DVD-Video Lpcm multiplex utility - GNU GPL License
------------------------------------------------------------------------
The purpose of Lplex is to provide a free, quick, and hopefully
painless way to
- create a playable full-resolution audio-only dvd-video disc from
wave or flac audio filesets, with md5 verification and archival
content.
- extract unencrypted lpcm audio streams from dvd-video to wave or
flac in an md5-verified process.
You're already fully equipped for hi-res audio (up to 24-bit/96khz)
if you have a typical dvd-player and digital amp, and Lplex is a way
to take advantage of this.
---------------------------- REQUIREMENTS ------------------------------
- Windows XP, DVD-capable hardware
- Adequate free space, roughly
- 2x wave input size or 3x flac for authoring (cleanup enabled).
- equal to input size for extraction.
============================= QUICK START ==============================
1. Unzip the folder 'Lplex' to a location of your choice.
2. PAL/SECAM USERS: double-click on 'Lplex.exe' and then close it;
now open 'Lplex.ini' in Notepad and change 'video=ntsc' to
'video=pal', and save.
3. Just drop a folder (or disc) onto 'Lplex.exe' and it automatically
creates a dvd if it finds audio files inside, or extracts audio
if it finds a dvd filesystem. That's it (almost).
Default authoring is set to continuous audio, i.e. a concert. To
author a compilation with breaks between the tracks, you can
either drop the input folder onto 'Lplex_discrete.bat' (in the
'Util' subfolder), or proceed to the SETTINGS section below to
customize Lplex first.
5. Press CTRL-C at anytime to stop the program.
6. Burn the resulting .iso image file using Nero, ImgBurn, or similar
program.
------------------------------ FEATURES --------------------------------
- easy drag & drop operation
Authoring
- wave or flac input (16 or 24 bit / 48 or 96 Khz / 1-8 channel)
- no loss of audio data due to stream truncation (this is a problem
with other multiplexors)
- md5 monitoring of audio data
- automatic inclusion of archival data in dvd: info files, art, etc.
- partial authoring to generate lpcm, m2v, mpeg files.
Extraction
- wave or flac output (16 or 24 bit / 48 or 96 Khz / 1-8 channel)
- md5 monitoring of audio data
(for Lplex-authored discs)
- restoration of identical original audio data with md5 checking
- restoration of input file/folder structure with original filenames
and archival data
------------------------------- SETTINGS -------------------------------
Open 'Lplex.ini' in any plain text editor (e.g. Notepad) to see
the default settings. You can edit these to suit your preferences and
save. The settings are:
'formatOut=wave' (or 'flac' or 'flac#' [where #=1-8] or 'raw')
EXTRACTION: format will be wave (or flac# where # specifies
compression level, or raw dvd-order lpcm). 'flac' is the same as
'flac6'.
'video=ntsc' (or 'pal' or 'secam')
AUTHORING: the TV standard to use; must match your dvd player (for
the purposes of dvd-video 'pal' and 'secam' are equivalent).
'md5Aware=true' (or 'false')
AUTHORING: md5 signatures and restoration tags will be embedded
in the dvd for future reference during extraction.
EXTRACTION: if the dvd is Lplex-authored, the audio data will be
md5-verified and the original filenames and folder structure
restored. If not Lplex-authored, the audio files will be named
according to their position in the dvd structure, and an md5 value
will be calculated.
'restore=true' (or 'false')
EXTRACTION: if the dvd is Lplex-authored, track startpoints will
be shifted back to their original pre-authored locations, entirely
restoring the original fileset, and if set to 'false', output will
correspond to the dvd start and end points as-is, excluding any
padding. This setting only takes effect if 'md5Aware=true'.
'infoFiles=true' (or 'false')
AUTHORING: all non-wav/flac files encountered will be copied, with
the folder structure intact, to an archive folder named 'XTRA' in
the root of the dvd.
EXTRACTION: if the dvd is Lplex-authored, the file/folder
structure in the 'XTRA' folder will be copied to the output
folder.
'jpeg=black' (or 'black_x' [where x=XS,S,M,L] or a valid filename)
AUTHORING: the accompanying video will be a black screen. Default
size is 352x240 NTSC or 352x288 PAL. You can substitute your
own jpeg image by specifying a valid filename (using double
backslashes), e.g. 'jpeg=C:\\myImages\\coolbackground.jpg'. Valid
dimensions are:
L M S XS
NTSC: 720x480 704x480 352x480 352x240
PAL : 720x576 704x576 352x576 352x288
'alignment=seamless' (or 'discrete' or 'indiscrete' or 'none' )
[AUTHORING:]
seamless: ("concert" mode - lossless, gapless, unpadded)
Track startpoints will be shifted to where audio and video
frames are in alignment, ensuring gapless playback and no need
for any padding between tracks. Shift direction is determined
by the 'shift' setting (see below).
discrete: ("compilation" mode - lossless with gaps and padding)
Tracks will be padded with silence to the next full audio
frame in order to prevent stream truncation during multiplexing.
A playback gap (equal to video duration - audio duration) is
introduced. An additional half-second pause will also occur
during playback because of stc discontinuity.
indiscrete: ("compilation" mode - lossless with padding only)
Tracks will be padded with silence to the next point of a/v
frame alignment. Unlike 'discrete' there is technically neither
a playback gap nor a discontinuity pause in this model, though
the padding is much greater.
none: ("standard" model - lossy, unpadded, with gaps)
Tracks will be padded to next dvd sample unit if required.
Audio will be dropped at the end of each track, unless your
files happen to be the exact length to require no truncation.
See the ARCANE DISCUSSION below for more on alignment.
'shift=backward' (or 'nearest' or 'forward')
AUTHORING: direction to shift the track startpoints if 'alignment'
is 'seamless' (see above).
'cleanup=true' (or 'false')
AUTHORING: all interim files (raw lpcm, m2v, mpg, etc) will be
deleted in progress; otherwise these files are left wherever
'workPath' points to (your system's temp directory by default) -
make sure you have adequate additional free space (roughly an
extra 2x input size).
'create=iso' (or 'dvd' or 'dvdstyler' or 'mpeg' or 'm2v' or 'lpcm')
[AUTHORING:] process will be completed to the specified stage:
iso: an iso image file ('[output name].iso') suitable for burning
with ImgBurn, Nero(*) or similar program will be created
alongside the output folder. To allow you to further edit the
contents of the 'XTRA' archive folder prior to burning, or to
test the dvd file structure first on a software player, this
step can also be done separately afterwards by dropping the
'[output name]_DVD' folder onto the 'mkisofs.bat'(**) utility
(in the 'Util' subfolder). I recommend burning using an image,
not the dvd file structure, since your burning program will
likely reject 24-bit content, or worse yet downsample it by
default.
(*) my Nero (Express 6) mistakes some DVD iso's for CD images
(based on size, I think) but ImgBurn has no trouble with
them.
(**) if using 'mkisofs.bat' please ensure the '_DVD' foldername
is 32 bytes or less, otherwise mkisofs will fail, reporting
"Volume ID string too long".
dvd: a dvd file structure will be created in the dvd folder.
dvdstyler: mpeg file(s) and an xml configuration file suitable for
loading into dvdStyler for menu-generation will be created in
the work folder. The dvd folder (including the 'XTRA' info
folder) will also be created for later transfer of the
'VIDEO_TS' and 'AUDIO_TS' folders output by dvdStyler.
For details see LIMITATIONS section below.
mpeg: mpeg file(s) will be created in the work folder. The dvd
folder (including the 'XTRA' info folder) will also be
created.
m2v: raw lpcm and m2v files only will be created in the work
folder.
lpcm: raw dvd-order lpcm file(s) only will be created in the work
folder.
Note: there is no need to change the 'cleanup' setting for partial
authoring.
'media=dvd+r' (or 'dvd-r' or 'dl' or 'none')
AUTHORING: will verify that output fits on the given media before
authoring. This is only a size check.
Important: for 'dl' (dual-layer) media, see LIMITATIONS section
below.
'verbose=false' (or 'true')
AUTHORING: if 'verbose=true' all of Lplex's screen messages will
be shown in progress. This verbose version is always written to
'Lplex.log' in the 'XTRA' folder regardless of this setting.
EXTRACTION: same as above, except 'Lplex.log' is written to the
output folder.
'dvdPath=adjacent' (or any valid path)
AUTHORING: the output folder is by default right next door to the
input folder if input is on your hard drive, and named '[input
folder name]_DVD', i.e. dropping 'c:\someAudio' will output to
'c:\someAudio_DVD'. You can instead redirect dvd file output
globally to any valid path by editing this setting (using double
backslashes), e.g. 'dvdPath=C:\\myDVDs\\'.
Note: unless a name is explicitly given using the -d command line
switch when the input folder is either an unnamed dvd disc or the
dvd is multi-title, output is named '[YYYY-MM-DD_HHMM]_DVD'.
'isoPath=adjacent' (or any valid path)
AUTHORING: globally redirects iso image output, same as above.
'extractPath=adjacent' (or any valid path)
EXTRACTION: globally redirects extraction output, same as above,
except the output folder name suffix will be '_UNPACKED'.
'workPath=[current user's temp folder]' (or any valid path)
AUTHORING: globally redirects temporary workspace, same as above.
'dvdDriveTo=[current user's home path]' (or any valid path)
AUTHORING: - root output folder if input is from a disc in your
dvd drive. This initially defaults to your system's home directory
for the current user, something like 'dvdDriveTo=C:\\Documents and
Settings\\buffy\\', but you can edit it (using double backslashes)
to be any valid existing path, e.g.
'dvdDriveTo=C:\\myAudio\\Lpcm\\'.
EXTRACTION: same as above
----------------------------- LIMITATIONS ------------------------------
This is a beta release, so the list below will likely grow along with
your scrutiny, and then hopefully shrink again with your patience.
1. In Drag & drop mode input files will be ordered alphabetically
first by folder and then by file name.
2. Dvd size is slightly overestimated (on the order 10-20 MB), so a
few borderline cases will end up falsely reported as being too
large for the given media.
3. 20-bit audio support, though in progress, is currently disabled
due to the scarcity of sources for conclusive testing.
4. Multi (6+) channel processing is enabled, though not extensively
tested.
5. Wave files must have canonical 44-byte headers only. If you're
experiencing a problem with wave files, try either stripping the
header of any extensions or converting to flac prior to authoring
with Lplex.
6. There is no internal option for dvd menus per se. You can, of
course, navigate by pressing 'next', 'prev' and using the number
pad on your remote control. In multi-title dvds, pressing any
'menu' or 'disc' button will jump forward to the start of the
next titleset.
7. You can, at your own discretion, generate menus using dvdStyler
<dvdstyler.sourceforge.net> as follows:
- NTSC users, please read the instructions at
<dvdstyler.sourceforge.net/wiki/FAQNtsc> regarding the
dvdStyler ntsc-only player bug.
- set 'create' to 'dvdstyler' and author the mpeg files using
Lplex.
- open the resulting '..._dvdstyler.xml' file (located in the
work folder) in dvdstyler, noting that Lplex's mpeg files are
present in the timeline area at the bottom of the window.
- design and add your menus, then create the dvd file structure
with the 'file>burn dvd...>just generate' option checked.
- after testing, move the resulting 'VIDEO_TS' and 'AUDIO_TS'
folders to the '_DVD' folder already created by Lplex.
- if applicable, trim the '_DVD' folder name to 32 bytes or less
to prevent a "Volume ID string too long" failure in the next
step.
- drop the '_DVD' folder onto the 'mkisofs.bat' utility (located
in Lplex's 'Util' subfolder) to generate the iso image.
8. Dual-layer images are not created correctly as yet, lacking a
properly defined layer break. You can, at your own discretion,
try the following workaround to create and burn a dl iso image
(I haven't burn-tested this myself as yet):
- set 'create' to 'dvd' and 'media' to 'dl' or 'none' and
author the dvd file structure using Lplex.
- process the resulting 'VIDEO_TS' folder using the free tools
PgcEdit and ImgBurn as described here:
<digital-digest.com/~blutach/dl_burn_guide2/dl_burning_with_pgcedit_v2.htm>
(n.b. the 'Seamless layer break' section for continuous
audio)
9. There is no facility for upsampling CD audio. You can, at your
own discretion, try the following free resamplers for this
purpose:
- SRCdrop : <rarewares.org/others.html>
- Shibatch : <rarewares.org/others.html>
- WaveFS44 : <rarewares.org/others.html>
- r8brain : <voxengo.com/product/r8brain/>
Good luck, and please report back with any results, corrections, or
refinements regarding the above.
------------------------- COMMAND LINE USAGE ---------------------------
Users familiar with a command-line interface can refer to the help
screen (type 'Lplex -h') for direct control over the dvd layout
(track order, additional titlesets, different types of lpcm on one
disc), and to override program defaults. Filepaths must use single
backslashes and should be enclosed in quotes if containing spaces, as
usual.
-------------------------- ARCANE DISCUSSION ---------------------------
PADDING AND PLAYBACK GAPS
Dvd-video imposes a somewhat arbitrary minimum unit of an 'audio
frame' onto lpcm data, so unless padded the audio will end up
truncated to the nearest full audio frame. Padding ensures that no
audio is dropped, though a commensurately tiny (or gigantic
depending on your point of view) stretch of silence is introduced
as a result. The outside limit for audio frame-completion padding
is just short of 150 pts ticks, or 0.00167 seconds.
Another constraint is that the last frame of audio should occur
within the last frame of video, so that unless the frames happen
to be perfectly aligned, a playback gap occurs when audio has run
out but video has not, with naturally an outside limit of just
under one video frame (NTSC = 0.033 and PAL = 0.04 seconds). For
discontinuous audio this is tolerable, since there's a break
anyway, but there's an additional wrinkle. This discontinuity, for
reasons I confess I don't entirely understand, causes dvd playback
to pause for an additional half second over and above the
predicted gap. To entirely prevent any "gap" (in a strictly
technical sense) then, one would be forced to pad forward to the
next 'magic point' of perfect a/v alignment (see below). Although
there's no clear advantage to authoring this way as opposed to
allowing the combined gap and pause, Lplex will, at your option,
author discontinuous audio by either method ('discrete' or
'indiscrete' alignment). My own feeling is that it's better to use
'alignment=discrete' so as to avoid padding, since it won't be
separated out if extraction is done using any other utility.
NOTE: Lplex discards any padding during extraction, so
that audio data is ultimately unaltered.
See the title layout tables section of the verbose output (or
'Lplex.log') for the precise gap and/or padding length at the end
of any given track.
SEAMLESS PLAYBACK
For truly seamless playback of continuous audio Lplex's approach
is to recut the tracks at 'magic points' where both audio and
video frame boundries coincide (somewhat similar to sector
boundary alignment in cd-audio). In dvd time is measured in PTS
(Presentation Timestamp) ticks. Here's the math:
One second = 90000 PTS ticks
One lpcm audio frame = 150 PTS ticks
One NTSC video frame = 3003 PTS ticks
One PAL video frame = 3600 PTS ticks
so the system-specific 'magic' cut points are
NTSC: every 50 video frames = 1001 audio frames = 1.66 seconds
PAL : every 1 video frame = 24 audio frames = 0.04 seconds
and 'universal magic points' occur (unfortunately for us,
otherwise there would be an argument for permanently recutting
once and for all and not worrying about restoring later) at
every 1200 NTSC frames = 1001 PAL frames = 24024 audio frames
= 40.04 seconds
Lplex's 'seamless' alignment moves the track startpoints to an
immediate system-specific 'magic point' when authoring (which, to
my mind at least, is a tolerable shift), then restores the
original startpoints on extraction.
(THEORETICALLY) PERMITTED AUDIO
According to
http://www.mpeg.org/MPEG/DVD/Book_B/Audio.html,
dvd-video allows the following types of lpcm. Lplex presently
attempts to support the varieties marked '+'.
Rate Depth : Channels
(khz) (bits) : 1 2 5(+1) 8
-------------------------------------------
48 16 : Yes+ Yes+ Yes+ Yes+
20 : Yes Yes Yes -
24 : Yes+ Yes+ Yes+ -
96 16 : Yes+ Yes+ - -
20 : Yes Yes - -
24 : Yes+ Yes+ - -
LPLEX TAGS DESCRIPTION
Lplex writes tags at two locations in every dvd program
- PCI.RECI field (offset 0x343) of first nav packet
(only if the tag fits within the space 0x400-0x343)
- as a User Data field in first GOP of video
The tags consist of the following two contiguous pieces:
1. 42 byte flac header (STREAM, METADATA_BLOCK_HEADER and
METADATA_BLOCK_STREAMINFO) describing the audio data
extracted to wave-order from the dvd as-is. See
<flac.sourceforge.net/format.html> for header details.
2. Variable-length xml entity of the form
<Lplex ver="*" path="*" id="*" shift="*" md5prev="*"/>
where
ver : version of Lplex which wrote the tag.
path : path and filename under root folder to use for
output.
id : index relative to all authored tracks present on
the dvd.
shift : number of audio bytes to shift (+)in/(-)out at
track end to restore original pre-authored state.
md5prev : 32 byte text-form md5 signature for track after
shift.
--------------------------- ACKNOWLEDGMENTS ----------------------------
Lplex uses the open-source Linux authoring utilities
mjpegtools : <mjpeg.sourceforge.net>
dvdauthor : <dvdauthor.sourceforge.net>
mkisofs : <cdrecord.berlios.de/old/private/cdrecord.html>
in win32 versions which run on the free cygwin POSIX emulator, all of
which are included in the 'Bin' program folder. The mjpegtools
utility mplex provided here is a recent cvs build, and also contains
an entirely inconsequential patch to implement a progress counter
(the current official release of mplex in mjpegtools-1.8.0 doesn't
handle lpcm data correctly).
Lplex was initially modeled on Dave Chapman's excellent open source
utility dvda-author <dvd-audio.sourceforge.net>, which creates
dvd-audio discs, and wav2lpcm, which converts lpcm from wave to dvd
order. Dvd-audio is admittedly superior to dvd-video in the sense
that it handles a far wider range of lpcm audio (from 16-bit 44khz
mono up to 24-bit 96khz 6ch and 24-bit 192khz 2ch), but has the one
drawback of requiring a dvd-audio player for playback, which in the
real world remains a relatively rare bird. Dvd-video players are
everywhere, on the other hand, and offer identical digital quality
for their narrower range of supported lpcm audio types, which is
where Lplex comes in. Dvd navigation and extraction was modeled
primarily on dvdunauthor by Scott Smith and Ralf Engels, another
great open source utility.
Software dependencies:
libdvdread : <dtek.chalmers.se/groups/dvd/downloads.shtml>
flac api : <flac.sourceforge.net>
'md5.c' : <sourceforge.net/projects/libmd5-rfc/>
wxwidgets : <wxwidgets.org>
libjpeg : <ijg.org>
gnugetopt : The GNU C Library
The executables were compressed using upx : <upx.sourceforge.net>.
Bahman Negahban
2006-08-04