# Capturing analog

## flammenflitzer

Hallo

Ich habe lange gesucht und probiert. Ich favoritisiere 

```
 streamer -i television -t 0:30 -b 64 -s 720x576 -n pal -f mjpeg -j 85 -r 25 -F stereo -o mjpeg.avi
```

 Da habe ich teilweise kleine Ruckler.

```
streamer -i television -t 01:00 -b 64 -p 5 -s 720x576 -n pal -f yv12 -r 25  -F stereo -R 48000 -o movie.mov
```

Die Bildqualität ist etwas schlechter.

```
 mencoder tv:// -tv driver=v4l2:norm=pal:input=0:fps=25:audiorate=48000:width=768:height=576 -oac lavc -ovc lavc -lavcopts vcodec=huffyuv:format=422p:acodec=mp2:abitrate=224 -vf pp=lb -endpos 10:30 -o mencoder.avi
```

Da scheint mit die Qualität am Besten. Allerdings hängt der Ton schon am Anfang hinterher und der Versatz wird immer größer.

Kann mir da jemand helfen?

Auch 

```
 mencoder tv:// -tv driver=v4l2:norm=pal:input=0:fps=25:audiorate=48000:forceaudio:width=768:height=576 -oac lavc -ovc lavc -lavcopts vcodec=huffyuv:format=422p:acodec=mp2:abitrate=224 -vf pp=lb -endpos 10:30 -o mencoder-aufnahme-forceaudio.avi
```

hilft nichts.

----------

## fuchur

Hi

Bei mir hat es früher immer mit:

```

transcode -i /dev/video0 -p /dev/dsp1 -x v4l2,v4l2 -o /tmp/test.avi -y xvid4,xvid4 --import_v4l 2 -c "22:00:00" -V -Q 5 -I 2 -C 1 -J dnr -e 44100,16,2
```

 gut funktioniert. Ist aber schon ein paar Jahre her.

MfG

----------

## flammenflitzer

Habe jetzt auch transcode benutzt. Allerdings mit gv4l, da ich mich mit der Syntax von transcode noch nicht vertraut gemacht habe. Das Ergebnis war bisher das beste.

----------

## fuchur

Hi

Ich habe immer aus "Nxtvepg" (elektronischer Fernsehprogramm-Führer (EPG) für den Analogbereich)

aufgenommen. In "Context Menu Configuration" habe ich folgendes hinzugefügt:

```
Titel: Aufnehmen XVID4

Command: codec="xvid4,xvid4" /home/fuchur/scripte/aufnehmen ${network} ${title} ${start-3:%H:%M %d.%m.%Y} ${duration}
```

Und das script "/home/fuchur/scripte/aufnehmen" 

```

#! /bin/sh

# settings nextview

# formart:

# codec="divx5,divx5" /path/to/aufnehmen ${network} ${title} ${start-3:%H:%M %d.%m.%Y} ${duration}

# for codec "man transcode option -y"

# setting "${start-value:..." to start a recording "value" minutes earlier

#

STATION=$1

TITLE=$2

START=$3

DURATION=$(echo $4 | sed 's/[^0-9]//g')

# system settings

#

VIDEODEV="/dev/video0"

AUDIODEV="/dev/dsp1"

# settings other

#

VIDEOSTORE="/home/fuchur/stuff/video/record"

DURATIONENCORE="10"  # duration core in minutes regardless of ${start-value:..."

FILENAME=$(echo "$TITLE" | sed 's#[^a-zA-Z0-9]#_#g')

STARTDATE=$(echo "$START" | sed 's# #_#g')

PARAMETERS="-V -Q 5 -I 2 -C 1 -J dnr -e 44100,16,2 -b 128"

FILEEXTEN=$(echo "$codec" | cut -d, -f1)

# calculated vars

#

let DURATIONTOTALL=$DURATION+$DURATIONENCORE

let HRS=$DURATIONTOTALL/60

let MIN=$DURATIONTOTALL%60

at $START <<EOF

    /usr/bin/amixer -c 1 sset Capture,0 30%,30% cap rec

    /usr/bin/amixer -c 1 sset "Mix Mono",0 unmute cap

    /usr/bin/amixer -c 1 sset Line,0 80%,80% unmute rec cap

    if ! ps axww | grep -i xawtv | grep -qv grep; then

        /usr/bin/amixer sset Line,0 mute

    fi

    date > /tmp/recordvideo.log

    echo "*** Recording $STATION to file: ${VIDEOSTORE}/${FILENAME}_${STARTDATE}.${FILEEXTEN}" >> /tmp/recordvideo.log

    transcode -i ${VIDEODEV} -p ${AUDIODEV} -x v4l,v4l \

              -o ${VIDEOSTORE}/${FILENAME}_${STARTDATE}.${FILEEXTEN} -y "$codec" \

              --import_v4l 0,"$STATION" \

              -c "${HRS}:${MIN}:00" \

              ${PARAMETERS} \

              #> /dev/null 2>&1

              > /tmp/a 2>&1

    rm -f ${VIDEOSTORE}/${FILENAME}-${STATION}_${STARTDATE}.txt

    $command

EOF

echo "'$1' '$2' '$3' '$4'" > $VIDEOSTORE/${FILENAME}-${STATION}_$STARTDATE.txt
```

So hatte ich in Nxtvepg ein eintrag "Aufnehmen XVID4" beim Rechtsklick auf ein Sendung (mit at).

Hat bei mir auch immer ganz gut funktioniert. Must mal schauen vielleicht kannst du damit

ja etwas anfangen. Must natürlich noch nach deine System anpassen.

MfG

----------

## mv

 *flammenflitzer wrote:*   

> Allerdings hängt der Ton schon am Anfang hinterher und der Versatz wird immer größer.

 

Normalerweise ist der Rechner nicht schnell genug, den Sound gleich in mp2 zu kodieren. Bei mir tritt das Problem auch auf, aber mit "-oac copy" (bei mencoder) geht es (und dann meldet mencoder auch einen Fehler, falls die Spuren auseinanderlaufen - keine Ahnung, weshalb er das bei mp2 nicht merkt).

Ich bin mit -aoc copy sehr zufrieden, denn mormalerweise will man ja hinterher sowieso schneiden und dann eine Mehr-Path-Codierung vornehmen...

----------

## HeadbangingMan

Ich benutze zwar eine dbox2 um DVB-C aufzuzeichnen, aber vielleicht kann ich trotzdem helfen. Wenn ich einen von der dbox2 aufgezeichneten mpeg-ts-stream weiterverarbeite, egal wie, laufen auch Audio und Video auseinander. Auf einer Webseite habe ich auch mal gelesen warum das so ist, kann es aber nicht mehr erklären.

Abhilfe schafft hier das Programm ProjectX. Bei mir muss ich

```

java -jar /opt/projectx/ProjectX.jar foo.mpg

```

ausführen. Dann erhalte ich die Videospur foo.m2v und die Audiospur foo.mp2. ProjectX behebt aber gleichzeitig Sync-Fehler, so dass die Audio- und Videospur genau zusammenpassen. Diese muss man jetzt mit

```

mplex -f 8 -o bar.mpg foo.m2v foo.mp2

```

wieder zusammenfügen. Dann sind zumindest bei mir Audio und Video 100% synchron und das Video kann dann z.B. mit Avidemux2 geschnitten werden.

Es wäre einen Versuch wert, das mal mit einer analog aufgezeichneten Videodatei zu versuchen. Ich wäre am Ergebnis sehr interessiert, da ich auch noch ein paar alte Videos zu digitalisieren hätte   :Smile: 

Anmerkung zum Schluss:

1. Das analoge Video muss in einem Format vorliegen, dass ProjectX auch lesen kann, die gängigsten Formate sollten aber gehen.

2. ProjectX hat auch ein GUI zum bearbeiten von Videos, allerdings ohne Ton während der Bearbeitung. Deshalb benutze ich lieber Avidemux2

3. Bei Avidemux2 beim Setzen der Schnittmarken nur die >> und << Schaltflächen benutzen, da für ein mpeg-Video die Schnittmarken auf Keyframes liegen müssen.

----------

## Finswimmer

 *mv wrote:*   

>  *flammenflitzer wrote:*   Allerdings hängt der Ton schon am Anfang hinterher und der Versatz wird immer größer. 
> 
> Normalerweise ist der Rechner nicht schnell genug, den Sound gleich in mp2 zu kodieren. Bei mir tritt das Problem auch auf, aber mit "-oac copy" (bei mencoder) geht es (und dann meldet mencoder auch einen Fehler, falls die Spuren auseinanderlaufen - keine Ahnung, weshalb er das bei mp2 nicht merkt).
> 
> Ich bin mit -aoc copy sehr zufrieden, denn mormalerweise will man ja hinterher sowieso schneiden und dann eine Mehr-Path-Codierung vornehmen...

 

Bei mir kamen mit der copy Funktion Größen von bis zu 500mb/Min raus. Deswegen habe ich das nicht nehmen können.

Wurde das bei dir auch so groß?

Tobi

----------

## mv

 *Finswimmer wrote:*   

>  *mv wrote:*   Ich bin mit -aoc copy sehr zufrieden, denn mormalerweise will man ja hinterher sowieso schneiden und dann eine Mehr-Path-Codierung vornehmen... 
> 
> Bei mir kamen mit der copy Funktion Größen von bis zu 500mb/Min raus.

 

"-aoc copy" nicht "-ovc copy". Ungefähr so:

```
mencoder -tv driver=v4l2:input=0:width=768:height=576:alsa:audiorate=44100:forcechan=2:amode=1 -ovc lavc -lavcopts vcodec=mpeg4:mbd=2:v4mv:vbitrate=4000 -vf crop=720:544:24:16,hqdn3d,pp=lb,softskip,harddup -oac copy -o record.avi tv://
```

Braucht etwa 40MB/Minute. Das ist immer noch viel, aber dafür kann man den Sound ohne Knacksen schneiden, und auch beim Video erleidet man praktisch keinen Qualitätsverlust an den Schnittstellen, wenn man erst danach "richtig" komprimiert. Aber auch für Obiges darf der Rechner nicht allzu lahm sein - emerge nebenher ist bei mir nicht drin, sonst fängt er bald an, frames zu droppen...

----------

## flammenflitzer

Ich habe seit längerem einen Gutschein für PC Zubehör herumliegen. Ich überlege, ob ich mit eine WinPVR150 250 oder 350 zulege. Die sollen ja über funktionierende Hardwareencoder verfügen. Ob das etwas bringt?

----------

