Commit 8f9cc68f authored by Klaus Schmidinger's avatar Klaus Schmidinger

Version 0.85

- Added Norwegian language texts (thanks to Jørgen Tvedt).
- Increased the usleep value in cDvbOsd::Cmd() to 5000 in order to work on
  systems with the KURT/utime-patch (thanks to Guido Fiala).
- Changed the check whether the driver is loaded in runvdr to check for the
  'dvb' module (the last one loaded).
- Fixed repeat function with LIRC (thanks to Stefan Huelswitt).
- Increased the upper limit for the symbol rate to 30000 (thanks to Ulrich
  Röder).
- Made the position of the channel display configurable (thanks to Stefan
  Huelswitt).
- Made the width and height of the OSD configurable (thanks to Stefan Huelswitt).
- DiSEqC support can now be generally enabled/disabled in the Setup menu. This
  may be necessary if your multiswitch gets irritated by the default DiSEqC
  codes '0' (thanks to Markus Lang).
- Fixed replaying in case there is no index file.
- Fixed jumping to an editing mark when replay has been paused.
- Avoiding unnecessary code execution in the replay progress display (thanks
  to Guido Fiala).
- When entering time values the digits that still have to be entered are now
  shown as '-' (as in "1-:--").
- When setting an editing mark while the progress display is not active, the
  display will now be turned on for a short while to indicate the successful
  setting of the mark.
- Updated 'channels.conf' for Premiere World (thanks to Helmut Schächner).
  Check your timers if you use this channels.conf file, since the sequence of
  several PW channels has been changed.
- Changed the color of "Info" messages to "black on green" and that of the
  confirmation messages (like "Delete...") to "black on yellow".
- Fixed display with DEBUG_OSD (it still crashes sometimes, esp. when replaying,
  but I can't seem to find what causes this... any ideas anybody?).
- Avoiding audio/video distortions in 'Transfer Mode' by no longer actually
  tuning the primary interface (which can't receive this channel, anyway).
  Apparently the driver gets irritated when the channel is switched and a
  replay session is started immediately after that.
- Increased timeout until reporting "video data stream broken" when recording.
- Explicitly switching back to the previously active channel after ending a
  replay session (to have it shown correctly in case it was in 'Transfer Mode').
parent 610c5600
......@@ -23,6 +23,7 @@ Guido Fiala <gfiala@s.netic.de>
for implementing the SVDRP command 'HITK'
for implementing image grabbing
for implementing overlay capabilities (see his 'kvdr' tool at http://www.s.netic.de/gfiala)
for making the replay progress display avoid unnecessary code execution
Robert Schneider <Robert.Schneider@lotus.com>
for implementing EIT support for displaying the current/next info
......@@ -42,6 +43,7 @@ Bastian Guse <bastian@nocopy.de>
Matthias Schniedermeyer <ms@citd.de>
for implementing the 'MarkInstantRecord' setup option
for his "schnitt" tools
for his "master-timer" tool
Miha Setina <mihasetina@softhome.net>
for translating the OSD texts to the Slovenian language
......@@ -54,6 +56,7 @@ Deti Fliegl <deti@fliegl.de>
Dave Chapman <dave@dchapman.com>
for implementing support for the teletext PID
for his great support in switching to the NAPI
Hans-Peter Raschke <Hans-Peter.Raschke@Wintermann-DatenService.de>
for his support in adapting VDR to DVB-C
......@@ -70,3 +73,36 @@ Arnold Niessen <niessen@iae.nl> <arnold.niessen@philips.com>
Jürgen Sauer <jojo@automatix.de>
for implementing the -t option to set the controlling terminal
Benjamin Reichardt <reichard@math.uni-goettingen.de>
for his help in debugging the transition to the new API
Henning Holtschneider <hh@holtschneider.com>
for patching 'runvdr' to check whether the driver is already loaded
Paulo Manuel Martins Lopes <pmml@netvita.pt>
for translating the OSD texts to the Portugese language
Markus Lang <markus.lang@nissan-db.de> and Ulrich Röder <dynamite@efr-net.de>
for making DiSEqC support configurable
Jean-Claude Repetto <jc@repetto.org>
for translating the OSD texts to the French language
Andre Valentin <av2000@topmail.de>
for increasing the key name buffer size for LIRC
Jørgen Tvedt <pjtvedt@online.no>
for translating the OSD texts to the Norwegian language
Stefan Huelswitt <huels@iname.com>
for fixing the repeat function with LIRC
for making the position of the channel display configurable
for making the width and height of the OSD configurable
Ulrich Röder <dynamite@efr-net.de>
for pointing out that there are channels that have a symbol rate higher than
27500.
Helmut Schächner <schaechner@yahoo.com>
for his support in keeping the Premiere World channels up to date in 'channels.conf'
......@@ -13,7 +13,7 @@ Video Disk Recorder File Formats
A "channel definition" is a line with channel data, where the fields
are separated by ':' characters:
Example: "RTL:12188:h:1:27500:163:104:0:0:12003"
Example: "RTL:12188:h:1:27500:163:104:105:0:12003"
The fields in a channel definition have the following meaning (from left
to right):
......@@ -25,7 +25,9 @@ Video Disk Recorder File Formats
- Diseqc number **
- Symbol rate
- Video PID
- Audio PID
- Audio PID (either one number, or two, separated by a comma)
If this channel also carries Dolby Digital sound, the Dolby PIDs follow
the audio PIDs, separated by a semicolon, as in "...:101,102;103,104:..."
- Teletext PID
- Conditional Access (0 = Free To Air, 1 = can be decrypted by the first
DVB card, 2 = can be decrypted by the second DVB card)
......@@ -60,8 +62,10 @@ Video Disk Recorder File Formats
(1..31)
- Start time (first two digits for the hour, second two digits for the minutes)
- End time (first two digits for the hour, second two digits for the minutes)
- Priority (from 00 to 99, 00 = lowest prioity, 99 = highest priority)
- Guaranteed lifetime of recording (in days)
- Priority (from 0 to 99, 0 = lowest prioity, 99 = highest priority)
- Guaranteed lifetime of recording (in days); 0 means that this recording may
be automatically deleted by a new recording with higher priority, 99 means
that this recording will never be automatically deleted
- Name of timer (will be used to name the recording); if the name contains
any ':' characters, these have to be replaced with '|'
- Summary (any newline characters in the summary have to be replaced with '|';
......@@ -126,3 +130,13 @@ Video Disk Recorder File Formats
- marks must have a frame number, and that frame MUST be an I-frame (this
means that only marks generated by VDR itself can be used, since they
will always be guaranteed to mark I-frames).
* 001.vdr ... 255.vdr
These are the actual recorded MPEG data files. In order to keep the size of
an individual file below a given limit, a recording is split into several
files. The contents of these files is "Packetized Elementary Stream" (PES)
and contains ES packets with ids 0xE0 for video, 0xC0 for audio 1 and 0xC1
for audio 2 (if available). Dolby Digital data is stored in packets with
ids 0xBD.
......@@ -290,7 +290,7 @@ Video Disk Recorder Revision History
channel, if the timer currently occupying this DVB card doesn't need the
CAM module (and thus can continue recording on a different DVB card).
- The "Yellow" button in the "What's on now/next?" menus now displays the
schedule of the current channel from that menu.
schedule of the current channel from that menu.
- All DVB cards in a multi-card system now write their EIT information into the
same data structure.
- If there is more than one DVB card in the system, the non-primary cards are
......@@ -332,8 +332,8 @@ Video Disk Recorder Revision History
- Implemented "On Disk Editing".
- There is no more default 'timers.conf' file.
- Added Italian language texts (thanks to Alberto Carraro).
- Fixed starting a replay session when the program is currently in "transfer
mode".
- Fixed starting a replay session when the program is currently in 'Transfer
Mode'.
- Fixed setting/modifying timers via SVDRP with empty summary fields.
- Fixed a problem with recordings that have a single quote character in their
name (this is now mapped to 0x01).
......@@ -452,3 +452,160 @@ Video Disk Recorder Revision History
- Empty lines in config files no longer cause error messages.
- New SVDRP command LSTE to list the EPG data.
- The SVDRP HELP command now prints the topics in several columns.
2001-06-02: Version 0.80
- VDR now requires driver version 0.9.0 or higher.
- Switched to the "new API" (thanks to Dave Chapman for his great support in
this task).
- New setup parameter "LnbSLOF" that defines the switching frequency of the LNB.
- Fixed a bug in the EPG scanner with more than one DVB card.
- Fixed checking for free disk space, so that it works with NFS mounted drives.
- Files are now created with mode 644.
- Fixed checking the exit status in the 'runvdr' script.
- Activated loading the driver in 'runvdr'. Please read the comments in 'runvdr'
for details.
- The new "emergency exit" feature automatically triggers a restart of VDR (if
used with 'runvdr', otherwise it simply exists) if
* tuning the channel for a recording fails
* no useful data is received within the first 1MB of a recording
* no data is received within a recording for more than 5 seconds
This should make sure that a recording is successfully restarted after any
problems.
- Processing the EIT data is now disabled during replay and 'Transfer Mode' in
order to avoid video and audio glitches (there appears to be a bandwidth
problem somewhere in the driver/firmware/hardware).
- Due to the reduced amount of OSD memory provided by the driver the number of
lines in the OSD had to be reduced by 2. By rearranging some of the display
items the amount of visible information remained the same as before, though.
If your DVB card has even less memory (which would result in only the
channel switching display and the replay progress display being visible, but
no Main menu), try reducing the constant 'MenuLines' in dvbapi.h (currently
'13') even further.
- There are two new setup parameters to define the "Default Priority" and
"Default Lifetime" when creating a new timer event.
- The meaning of the "Lifetime" parameter has been modified: a value of '99'
now means that the recording will live "forever", and a value of '0' means
that the recording has no guaranteed lifetime and will be deleted whenever
a new recording with higher priority needs disk space.
- Updated version of Matthias Schniedermeyer's 'schnitt' tools.
- New 'master-timer' tool (thanks to Matthias Schniedermeyer).
2001-06-12: Version 0.81
- Fixed handling the case where the driver reports EAGAIN during recording,
but no data comes within 5 seconds.
- Fixed EPG scanning on single DVB card systems.
- There can now be two audio PIDs per channel, which can be toggled via the
"Green" button in the "Main" menu. The "Edit Channel" menu therefore now
has two audio PID fields (Apid1 and Apid2). By default, Apid2 is 0, which
means there is no alternate audio track.
- Fixed replaying in case the driver reports EAGAIN.
- Now 'runvdr' checks if the driver is already loaded (thanks to Henning
Holtschneider).
- Fixed removing recordings with Lifetime = 99.
- Improved channel switching.
2001-06-16: Version 0.82
- Increased timeout until reporting "broken video data stream" when recording.
- Increased amount of non-useful data received by cRemux before assuming the
recording will fail.
- If there are two audio PIDs defined for a channel, both audio tracks will
now be recorded and can be selectively replayed later. See the FORMATS file
for details on how these different audio tracks are stored in the recorded
files. In order for this to work properly you need to use a driver version
dated 2001-06-16 or later, where the default PES filter buffer size has been
reduced. This will create packets for the second audio track that are small
enough to multiplex smoothly with the video data.
- Fixed a bug in the editing mechanism (didn't work with recordings that
consist of more than one data file).
- The compile time switch VFAT has been fixed to recognize the ':' character
in recording names, too.
- Setting all PIDs to 0x1FFF before switching channel.
- New setup parameter "VideoFormat" to define the aspect ratio of the tv set
in use (4:3 or 16:9).
2001-06-26: Version 0.83
- Avoiding "Device or resource busy" error message when setting PIDs.
- Added Portugese language texts (thanks to Paulo Manuel Martins Lopes).
- Recording and replaying Dolby Digital (AC3) sound.
- No longer getting stuck when a channel doesn't sync while switching
with the 'Up' and 'Down' keys.
2001-07-22: Version 0.84
- Fixed video packet scanning to make it recognize the whole range of
allowed video packet ids.
- Added an additional "emergency exit" in case channel switching doesn't
work several times in a row (when will the driver finally become stable
enough to allow rock solid channel switching??).
- No longer sending a Diseqc command if the Diseqc value for a given channel
is '0'. Previously this caused problems with some multi-switches (thanks to
Markus Lang and Ulrich Röder).
- When switching channels by entering the channel number via the numeric keys
on the remote control, the channel number displayed is now followed by the
'-' character to indicate that additional digits can be entered.
- Increased the timeout for numeric channel switching from 500ms to 1s.
- Fixed handling the "Green" button in the "Schedules" menu for channels that
have a second audio PID.
- Fixed high system load when displaying a still picture in replay.
- Fixed a hanging SVDRP connection if the client dies without issuing QUIT.
- Increased the frame buffer size to 192KB.
- Removed a superfluous VIDEO_FREEZE call in the replay buffer.
- Added French language texts (thanks to Jean-Claude Repetto).
- Modified OSD to use 2bpp windows (4 colors) in order to work with less
memory, allow a larger OSD window and be faster. The group separators in the
"Channels" menu had to be given a different color.
- Moved the channel display to the bottom of the screen.
- Displaying the frame counter in the replay progress display only when editing
a mark.
- Fixed handling characters above 0xEF in SVDRP.
- Fixed a possible crash in parsing incorrect lines in 'channels.conf'.
- New channel settings for Premiere World (Dolby Digital PIDs not yet
available).
- Increased the buffer for key names received from LIRC (thanks to Andre
Valentin).
- Fixed handling a channel group separator at the very beginning of the
'channels.conf' file.
2001-07-29: Version 0.85
- Added Norwegian language texts (thanks to Jørgen Tvedt).
- Increased the usleep value in cDvbOsd::Cmd() to 5000 in order to work on
systems with the KURT/utime-patch (thanks to Guido Fiala).
- Changed the check whether the driver is loaded in runvdr to check for the
'dvb' module (the last one loaded).
- Fixed repeat function with LIRC (thanks to Stefan Huelswitt).
- Increased the upper limit for the symbol rate to 30000 (thanks to Ulrich
Röder).
- Made the position of the channel display configurable (thanks to Stefan
Huelswitt).
- Made the width and height of the OSD configurable (thanks to Stefan Huelswitt).
- DiSEqC support can now be generally enabled/disabled in the Setup menu. This
may be necessary if your multiswitch gets irritated by the default DiSEqC
codes '0' (thanks to Markus Lang).
- Fixed replaying in case there is no index file.
- Fixed jumping to an editing mark when replay has been paused.
- Avoiding unnecessary code execution in the replay progress display (thanks
to Guido Fiala).
- When entering time values the digits that still have to be entered are now
shown as '-' (as in "1-:--").
- When setting an editing mark while the progress display is not active, the
display will now be turned on for a short while to indicate the successful
setting of the mark.
- Updated 'channels.conf' for Premiere World (thanks to Helmut Schächner).
Check your timers if you use this channels.conf file, since the sequence of
several PW channels has been changed.
- Changed the color of "Info" messages to "black on green" and that of the
confirmation messages (like "Delete...") to "black on yellow".
- Fixed display with DEBUG_OSD (it still crashes sometimes, esp. when replaying,
but I can't seem to find what causes this... any ideas anybody?).
- Avoiding audio/video distortions in 'Transfer Mode' by no longer actually
tuning the primary interface (which can't receive this channel, anyway).
Apparently the driver gets irritated when the channel is switched and a
replay session is started immediately after that.
- Increased timeout until reporting "video data stream broken" when recording.
- Explicitly switching back to the previously active channel after ending a
replay session (to have it shown correctly in case it was in 'Transfer Mode').
......@@ -15,7 +15,7 @@ If you have the DVB driver source in a different location
you will have to change the definition of DVBDIR in the
Makefile.
This program requires the card driver version 0.8.2 or higher
This program requires the card driver version 0.9.0 or higher
to work properly. You need to load the dvb.o module *without* option
'outstream=0' (previous versions of VDR required this option to have
the driver supply the data in AV_PES format; as of version 0.70 VDR
......@@ -81,13 +81,25 @@ Automatic restart in case of hangups:
If you run VDR using the 'runvdr' shell script it will use the built-in
watchdog timer to restart the program in case something happens that
causes a program hangup.
causes a program hangup. If you change the command line options for the
call to the VDR program, be sure to NOT use the '-d' option! Otherwise
VDR will go into 'deamon' mode and the initial program call will return
immediately!
Command line options:
---------------------
Use "vdr --help" for a list of available command line options.
Replaying Dolby Digital audio:
------------------------------
To replay Dolby Digital audio you need a program that reads the DD data
from stdin and processes it in a way suitable for your audio hardware.
This program must be given to VDR with the '-a' option, as in
vdr -a ac3play
The video data directory:
-------------------------
......
......@@ -18,7 +18,7 @@ Video Disk Recorder User's Manual
Menu Menu on Menu off Menu off Menu off Menu off Menu off Menu on
Back - Menu off Main menu Main menu Discard Main menu Recordings menu
Red - Record Edit Edit - Play -
Green - - New New - Rewind Skip -60s
Green - Language New New - Rewind Skip -60s
Yellow - - Delete Delete - Delete Skip +60s
Blue - Resume Mark Mark - Summary Stop
0..9 Ch select - - - Numeric inp. - Editing
......@@ -32,11 +32,11 @@ Video Disk Recorder User's Manual
confirms any changes (or switches to a channel in the "Channels" menu).
The "Back" key goes back one level in the menu structure, discarding
any changes that might have been made in the current menu.
In the "Timers" menu, the current timer can be enabled or disabled with
the "Right" or "Left" key, respectively (enabled timers are marked with ">").
"Ok" here opens the "Edit timer" menu.
Textual options, like channel names or recording file names, can be edited
by pressing the "Right" button (which puts brackets around the current
character as in "[R]TL"), selecting the desired character position with
......@@ -46,10 +46,10 @@ Video Disk Recorder User's Manual
brackets (as in abc[^]), the next press to the "Left" or "Ok" button will
actually cut off the string. Using "Up" and/or "Down" brings back the
original rest of the string (unless you have pressed "Left" or "Ok").
The "Red", "Green", "Yellow" and "Blue" buttons have special meanings
in various menus and are listed at the bottom of the on-screen-display.
At any point in the menu system, pressing the "Menu" key again will
immediately leave the menu system (discarding any pending changes).
......@@ -100,7 +100,7 @@ Video Disk Recorder User's Manual
and browse through the list with the "Up" and "Down" key; to switch to the
selected channel press "Ok".
3. Directly type in the channel number with the numeric keys ('0'..'9');
if no key is pressed for about half a second, the digits collected so
if no key is pressed for about one second, the digits collected so
far will define the channel number.
4. From the "Now", "Next" and "Event" menus (accessible through the "Schedule"
menu) by pressing the "Blue" button.
......@@ -115,6 +115,16 @@ Video Disk Recorder User's Manual
To bring up the channel display without switching channels you can press
the "Ok" button.
* Selecting language specific audio track
If the current channel provides different audio tracks (typically for
different languages), the "Green" button in the "Main" menu can be pressed
to toggle between these. There can be two different audio PIDs per channel,
assuming that typically a channel broadcasts a country specific language
plus the movie's original soundtrack.
Recordings made form such channels will contain both audio tracks, and when
replaying the desired audio track can be selected the same way.
* Switching through channel groups
If the 'channels.conf' file contains "group separators" you can switch
......@@ -257,6 +267,9 @@ Video Disk Recorder User's Manual
to free up space for a new recording. Note that setting this
parameter to very high values for all recordings may soon fill up
the entire disk and cause new recordings to fail due to low disk
space. The special value 99 means that this recording will live
"forever", and a value of 0 means that this recording can be
deleted any time if a recording with a higher priority needs disk
space.
File: The name under which a recording created through this timer will
be stored on disk (the actual name will also contain the date and
......@@ -309,9 +322,14 @@ Video Disk Recorder User's Manual
0 = instant recordings will not be marked
1 = instant recordings will be marked.
LnbFrequLo = 9750 The low and high LNB frequencies (in MHz)
LnbSLOF = 11700 The switching frequency (in MHz) between low and high LOF
LnbFrequLo = 9750 The LNB's low and high local oscillator frequencies (in MHz)
LnbFrequHi = 10600 (these have no meaning for DVB-C receivers)
DiSEqC = 1 Generally turns DiSEqC support on or off.
0 = disabled
1 = enabled
SetSystemTime = 0 Defines whether the system time will be set according to
the time received from the DVB data stream.
0 = system time will not be set
......@@ -341,6 +359,22 @@ Video Disk Recorder User's Manual
never keep the user from viewing stuff on the primary
interface. On systems with only one DVB card, timers
with a priority below PrimaryLimit will never execute.
DefaultPriority = 50 The default Priority and Lifetime values used when
DefaultLifetime = 50 creating a new timer event. A Lifetime value of 99
means that this recording will never be deleted
automatically.
VideoFormat = 0 The video format (or aspect ratio) of the tv set in use.
0 = 4:3
1 = 16:9
ChannelInfoPos = 0 The position of the channel info window in the OSD.
0 = bottom
1 = top
OSDwidth = 52 The width and height of the OSD .
OSDheight = 18 The valid ranges are width=40...56, height=12...21.
* Executing system commands
......
......@@ -4,11 +4,11 @@
# See the main source file 'vdr.c' for copyright information and
# how to reach the author.
#
# $Id: Makefile 1.21 2001/03/11 11:36:15 kls Exp $
# $Id: Makefile 1.22 2001/06/02 09:15:39 kls Exp $
DVBDIR = ../DVB
INCLUDES = -I$(DVBDIR)/driver
INCLUDES = -I$(DVBDIR)/ost/include
OBJS = config.o dvbapi.o dvbosd.o eit.o font.o i18n.o interface.o menu.o osd.o\
recording.o remote.o remux.o ringbuffer.o svdrp.o thread.o tools.o vdr.o\
videodir.o
......@@ -43,7 +43,7 @@ font: genfontfile fontfix.c fontosd.c
# Dependencies:
config.o : config.c config.h dvbapi.h dvbosd.h eit.h font.h i18n.h interface.h remote.h svdrp.h thread.h tools.h
dvbapi.o : dvbapi.c config.h dvbapi.h dvbosd.h eit.h font.h interface.h recording.h remote.h remux.h ringbuffer.h svdrp.h thread.h tools.h videodir.h
dvbapi.o : dvbapi.c config.h dvbapi.h dvbosd.h eit.h font.h recording.h remux.h ringbuffer.h thread.h tools.h videodir.h
dvbosd.o : dvbosd.c dvbosd.h font.h tools.h
eit.o : eit.c config.h dvbapi.h dvbosd.h eit.h font.h thread.h tools.h videodir.h
font.o : font.c font.h fontfix.c fontosd.c tools.h
......@@ -53,7 +53,7 @@ menu.o : menu.c config.h dvbapi.h dvbosd.h eit.h font.h i18n.h interface.h
osd.o : osd.c config.h dvbapi.h dvbosd.h eit.h font.h i18n.h interface.h osd.h remote.h svdrp.h thread.h tools.h
recording.o : recording.c config.h dvbapi.h dvbosd.h eit.h font.h interface.h recording.h remote.h svdrp.h thread.h tools.h videodir.h
remote.o : remote.c config.h dvbapi.h dvbosd.h eit.h font.h remote.h thread.h tools.h
remux.o : remux.c remux.h tools.h
remux.o : remux.c remux.h thread.h tools.h
ringbuffer.o: ringbuffer.c ringbuffer.h thread.h tools.h
svdrp.o : svdrp.c config.h dvbapi.h dvbosd.h eit.h font.h interface.h remote.h svdrp.h thread.h tools.h
thread.o : thread.c thread.h tools.h
......
Sammlung von "Hilfs"-Scripten
von Matthias Schniedermeyer
ms@citd.de
Diese Sammlung an "Hilfs"-Scripten habe ich mir zum scheiden und anderen
Zwecken zusammengeschrieben.
......@@ -10,10 +12,10 @@ Ich bin nicht sonderlich gut im "Dokumentieren". Also gilt die Devise
Ein paar Worte zu den "Hart"-Codierten Pfaden.
/yele/video (/video/video0)
/yelg/video (/video/video1)
/dvb/video
/dvb2/video
Sind die 2 Pfade auf meinem DVB-Rechner
Sind die 2 DVB-Rechner.
/x1/video
......@@ -30,14 +32,23 @@ Enthalten sind folgende Scripte:
cutall -> "Master"-Script zum starten des Scheide vorgangs.
Ist ein "find" nach "cut" -Dateien
cutt -> Das "eigentliche" Schnitt-Script
Scheidet die Stuecke aus, demultipext, remultipext,
splitted die Dateien und macht am Ende ein
ISO-Image daraus
Bei einem einzelnen Block wird diese direkt
gesplitet und dann zu einem ISO-Image verarbeitet
Wenn mehrere Teile (=War mit Werbung) vorhanden
sind, dann werden zuerst die einzelnen Teile,
legt nummerierte Verzeichniss ein und kopiert bzw
splitet die einzelnen Dateien in die Verzeichniss
und macht dann daraus die ISO-Images
(Leider funktioniert das aus irgendwelche Gruenden
(noch) nicht mit Serien die nur eine CD gross sind
aber das wird noch)
index.php -> PHP-Script zum finden der Schnitt-Punkte, mit
Testmoeglichkeit ob erfolgreich an diesem Punkt
geschnitten werden kann
mv2 -> Zum Moven der Aufnahmen von meinem DVB-Rechner
mv2 -> Zum Moven der Aufnahmen von meinen DVB-Rechnern
auf mein "Arbeitsrechner"
play -> Zum Abspielen einer Aufnahme von meinem Recher auf
dem "Frontend" DVB-Rechner
schnitt.pl -> Extraiert ein einzelnes Bild um es anzuzeigen
(Fuer index.php)
schnitt2.pl -> Gibt alles zwischen 2 Schnittpunkten auf STDOUT aus
......@@ -58,27 +69,43 @@ vdr2 -> Start-Script
vmount -> Mounten aller zusammengehoeriger ISO-Images zum
abspielen
Hilsscripte:
Hilfsscripte:
------------
cut.pl -> Entspricht weitestgehend "split" aber mit
"Nummer" anstatt Buchstaben
cut2 -> Entfernt escapende Backslashes
cut2.pl/cut3.pl -> Fuer Aufnehmen die aus mehreren Bloecken bestehen
(=Mit Werbung)
cutall2 -> Springt ins Schnitt-Verzeichniss und ruft das
"eigentliche" Schnitt-Script auf
lmplex -> Multiplexed Datenstrome unter Zurhilfename
saemtlicher CPUs
cutall3.pl -> Wenn in einem Verzeichniss mehrere Aufnahmen sind
splitet dies Programm diese und ruft fuer jede
Aufnahme das "cutt"-Script auf
schnittcommon.pli -> Das "Common" Script fuer schnitt?.pl
getpreviframe.pl -> Findet das vorherige I-Frame.
unsort -> Macht das Gegenteil von sort.
dump.c -> Muss in der "libmpeg3"-Verzeichniss des
"mpeg2-movie"-Packets kopiert werden und dann mit
"make" compilieren
Dieses C-Programm ist dafuer da um fuer das
PHP-Script das Bild anzuzeigen wo man gerade ist.
Da mir der "urspruengliche" Source-Code dafuer
abhanden gekommen ist und ich den Patch neumachen
musste (Wie immer mit "Verbesserungen") ist index.php
nocht nicht auf die neue Version angepasst. Die
Anpassung besteht aber nur darin eine "1" an die
Kommandozeile anzuhaengen.
Die ganze "Schnittloesung" ist leider etwas "unbrauchbar", weil ich aus
Unachtsamkeit leider die gepatchten Sourcen von 2 wichtigen Programm
geloescht habe.
dumpfrage -> Extraiert das erste Frage in eine Datei zum
anzeigen (gepatchtes dump aus "libmpeg3"
pvademux -> gepatcht um eine Pfad-Angabe
Im Gegensatz zur "alten"-Version ist diese Version "vollstaendig"
einsatzfaehig!
Entweder macht jemand/ich patchen "nochmal" oder ich kann auch die
Binaries zur Verfuegung stellen.
Wenn jemand Fragen zum Einsatz hat dann "loechern Sie mich"
ms@citd.de
Ich kann auch gerne die Einrichtung per "Fernwartung" (=ssh) uebernehmen.
(Wenn noetig compiliere ich auch auch apache mit PHP usw.)
#!/usr/bin/perl -w
#!/usr/bin/perl
use strict;
chdir ($ARGV[0]) if ($ARGV[0]);
my $maxsize = 660 * 1024 * 1024;
$read = $size = 1024*1024;
my $read = 1024*1024;
my $size = 1024*1024;
my $filenum = "1";
my $count = 0;
my ($fi,$data);
$filenum = "1";
$count = 0;
$fi = sprintf ("part%d",$filenum);
open (FI,">$fi");
while ($read == $size)
{
if ($count < $maxsize)
if ($count < 660*1024*1024)
{
$read = read (STDIN,$data,$size);
print FI $data;
$count += $size;
$a = $count /1024/1024;
if ($a % 10 == 0) {
print STDERR "File: $filenum Size: ${a}MB\n";
print stderr "File: $filenum Size: ${a}MB\n";
}
}
else
......
#!/bin/sh
cat cut | head -n 1 | tr -d [\\\\]
cat cut2 | head -n 1 | tr -d [\\\\]
#!/bin/sh
cutdir=/x1/video/
find $cutdir -name "cut" -exec cutall2 {} \;
find /x1/video/ -name "cut" -exec cutall2 {} \;
#!/bin/sh
a=`echo $1 | cut -d / -f1-5`
cd $a
cutt
cutall3.pl
mv cut cut.bak
......@@ -3,10 +3,13 @@
DIRA=/x2/temp
DIRB=/x1/temp
if [ -f cut ]; then
if [ ! -f cut2 ]; then
echo Keine Beschreibungsdatei
exit 1
else
name="`cut2`"
echo $name
count=`cat cut | wc -l`
count=`cat cut2 | wc -l`
let count=count-1
let test=count%2
if [ "$test" == "1" ]; then
......@@ -16,70 +19,88 @@ if [ -f cut ]; then
file=1
while [ "$count" != "0" ]
do
start=`cat cut | tail -n $count | head -n 1`
if [ "$count" == "2" ]; then
start=`cat cut2 | tail -n $count | head -n 1`
let count=count-1
end=`cat cut | tail -n $count | head -n 1`
let count=count-1
echo Cutting\&Demuxing from $start to $end
schnitt2.pl $start $end | pvademux $DIRA teil$file
# schnitt2.pl $start $end | pes2av_pes | pvademux $DIRA teil$file
let file=file+1
done
else
echo Keine Beschreibungsdatei
exit 1
end=`cat cut2 | tail -n $count | head -n 1`
schnitt2.pl $start $end | avpes2mpeg | cut.pl $DIRA
secondway=2
else
while [ "$count" != "0" ]
do
start=`cat cut2 | tail -n $count | head -n 1`
let count=count-1
end=`cat cut2 | tail -n $count | head -n 1`
let count=count-1
echo Cutting \& Converting from $start to $end
schnitt2.pl $start $end | avpes2mpeg > $DIRA/teil$file.mpg
# schnitt2.pl $start $end | pvademux $DIRA teil$file
let file=file+1
done
fi
fi
# Ab hier mkimg
sync
lmplex $DIRA $DIRB `ls -la $DIRA/teil*.m2v | cut -b 30- | sort -n -r | cut -d / -f4`
echo Multiplexing DONE
rm -f $DIRA/teil*.m2v $DIRA/teil*.mp2
rm cut2
sync
if [ -f $DIRB/teil1.mpg ]; then
echo Splitting
if [ "$secondway" != "2" ]; then
cd $DIRA
# cat $DIRB/teil*.mpg | split -b 723517440
cat $DIRB/teil*.mpg | cut.pl
rm $DIRB/teil*
fi
sync
cd $DIRA
cut2.pl "$name"
if [ -d 2 ]; then
count=1
cond=0
while [ "$cond" != "1" ]
do
echo mkisofs Teil $count
mkisofs -r -o $DIRB/image1.raw $count
rm -rf $count
mv -- $DIRB/image1.raw "$DIRB/${name} CD $count"
sync
let count=count+1
if [ ! -d $count ]; then
cond=1
fi
done
else
echo mkisofs
mkisofs -r -o $DIRB/image1.raw $count
rm -rf $count
mv -- $DIRB/image1.raw "$DIRB/${name}"
fi
else
if [ -f part2 ]; then
count=1
cond=0
cd $DIRA
while [ "$cond" != "1" ]
do
if [ -f part2 ]; then
count=1
cond=0
while [ "$cond" != "1" ]
do
mkdir a
mv "part$count" "a/${name} CD $count.mpg"
echo mkisofs Teil $count
mkisofs -r -o $DIRB/image1.raw a
rm -rf a
mv -- $DIRB/image1.raw "$DIRB/${name} CD $count"
sync
let count=count+1
if [ ! -f "part$count" ]; then
cond=1
fi
done
else
mkdir a
mv "part$count" "a/${name} Teil $count"
echo mkisofs Teil $count
mv part1 "a/${name}.mpg"
echo mkisofs
mkisofs -r -o $DIRB/image1.raw a
rm -rf a
mv -- $DIRB/image1.raw "$DIRB/${name} Teil $count"
sync
let count=count+1
if [ ! -f "part$count" ]; then
cond=1
fi