PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : video aufnehmen mit ton von tv-karte



Eremit
30.10.02, 18:00
hi,

möchte gerne sendungen vom fernsehen aufnehmen. die tv-karte läuft und videos werden auch aufgezeichnet. allerdings fast immer ohne ton. bei der aufzeichnung ist allerdings der ton zu hören. nur im fertigen avi oder mpeg nicht. die einzige ausnahme bildet hier das programm lavrec. damit funktioniert es. allerdings schmiert lavrec nach ein paar minuten immer unbegründet ab. :(
andere programm wie z.b. ffmpeg oder mplayer bzw. mencoder speichern den ton nicht mit ab.

woran kann das liegen?
hier beispiele:


lavrec --software-encoding -f a --g 320x240 -C europe-west:E10 -t 20 -d 2 -q 100 -B date_%02d.avi
(schmiert nach ein paar minuten ab aber geht sonst).



mplayer -tv on:driver=v4l:width=640:height=480:outfmt=i420 -vc rawi420 -vo xv
bild und ton sind vorhanden. es findet halt nur keine aufzeichnung in eine datei statt.


mencoder -tv on:driver=v4l:width=320:height=240 -o tv.avi -ovc rawrgb -oac pcm
ton und video sind doppelt so schnell und leider gespiegelt. das kann ich zwar mit -flip ändern aber die geschwindigkeit stimmt noch nicht. :(



ffmpeg -s 320x240 -f avi -acodec pcm_s16le -y -t 5 -ar 44100 -vd /dev/video -ad /dev/dsp out.avi
der ton is bei der aufnahme zu hören aber später nicht in der datei. habe auch schon andere videocodecs versucht.

was kann man nun noch machen?
brauche dringen hilfe.

Eremit

Eremit
30.10.02, 18:56
-

Eremit
31.10.02, 15:16
ich habe es nach wochen geschafft eine videoaufnahme hinzubekommen, die auch den ton in der richtigen geschwindigkeit aufnimmt.
hier die lösung:


mencoder -tv on:input=0:driver=v4l:width=320:height=240: \
outfmt=yv12:audiorate=22100:forcechan=1:channel=$3 :fps=25:amode=0 \
chanlist=europe-west:norm=PAL -o $1_divx.avi -ovc divx4 -oac mp3lame \
-endpos $2 -divx4opts br=$VIDEO -lameopts cbr:br=$AUDIO -srate 44100

parameterbedeutung:
1 -> dateiname
2 -> zeit
3 -> sender
4 -> videoqualität ( sollte ab 1500 sein)
5 -> audioqualität

die lösung hier liegt darin, dass erst die audiorate auf 22100 zurückgesetzt wird. scheinbar rechnet das programm die doppelt auf wenn die fernsehkarte nur mono liefert. das ganze setzte ich dann wieder mit -srate 44100 passend zurück. ist zwar nicht die ideale lösung aber es geht. ausserdem sind die videos dann auch noch in divx- und mp3-gecoded.:) dafür habe ich nun auch ein paar wochen an dem problem gesessen.

vielleicht hilft es ja irgendwem. habe schon mehrere im forum gesehen, die dieses problem hatten.

Eremit

Eremit
31.10.02, 15:28
hier das ganze als script um es sich ein wenig einfacher zu machen. einfach nach /usr/local/bin kopieren.

Eremit

Eremit
31.10.02, 15:39
hier das ganze noch mal als at-job um zu bestimmten zeiträumen etwas aufzunehmen. also quasi ein videorecorder.
dazu benötigt man auch das script von oben.

Eremit

Avic
01.11.02, 12:49
vielen Dank für den Tip!
So hat sich auch mein Ton-Problem aufgelöst:

http://www.linuxforen.de/forums/showthread.php?s=&threadid=46449

sphinx
01.11.02, 13:12
also mal ne dumme frage aber wo bekomme ich den mencoder her?
bekomme folgende meldung bei dem script

./video-record: line 27: mencoder: command not found

wäre nett wenn mir jemand weiterhelfen könnte

mfg sphinx

Eremit
01.11.02, 13:22
der sollte beim mplayer dabei sein.

Eremit

hunter
01.11.02, 17:03
@Eremit:

Möchtest du nicht eine HowTo schreiben ? Dann könnte ich dich zusammen mit steffan.becker s HowTo zusammen packen. Seine geht grafisch und mit avifile. Er hat sie jetzt unter mein Videokonvertierungs HowTo gehängt, aber da krieg ich es dann schon raus.

sphinx
02.11.02, 09:06
also erstmal danke für die hilfe zu meine obigen problem aber bei mir wird anscheinend kein ton aufgezeichnet. während der aufnahme hört man den ton über die soundkarte aber das video ist leider ohne ton! ich benutze das oben gepostetet script

MEncoder 0.90pre8-3.2 (C) 2000-2002 Arpad Gereoffy (see DOCS!)

CPU: Intel Celeron 2/Pentium III Coppermine,Geyserville (Family: 6, Stepping: 6)
CPUflags: Type: 6 MMX: 1 MMX2: 1 3DNow: 0 3DNow2: 0 SSE: 1 SSE2: 0
Reading /home/sphinx/.mplayer/codecs.conf: 38 audio & 106 video codecs
File not found: 'frameno.avi'
font: can't open file: /home/sphinx/.mplayer/font/font.desc
font: can't open file: /usr/local/share/mplayer/font/font.desc
success: format: 0 data: 0x0 - 0x0
Detected TV! ;-)
Selected driver: v4l
name: Video 4 Linux input
author: Alex Beregszaszi <alex@naxine.org>
comment: under development
Selected device: BT878(Lifetec LT 9415 TV (LR9)
Capabilites: capture tuner overlay clipping frameram scales
Device type: 235
Supported sizes: 48x32 => 924x576
Inputs: 4
0: Television: tuner audio tv camera (tuner:1, norm:0)
1: Composite1: audio camera (tuner:0, norm:0)
2: S-Video: audio camera (tuner:0, norm:0)
3: Composite3: audio camera (tuner:0, norm:0)
Using input 'Television'
[V] filefmt:9 fourcc:0x32315659 size:320x240 fps:25.00 ftime:=0.0400
Detected audio codec: [pcm] afm:pcm (Uncompressed PCM)
Opening audio decoder: [pcm] Uncompressed PCM audio decoder
AUDIO: srate=44100 chans=1 bps=2 sfmt=0x10 ratio: 88200->88200
Opening video filter: [expand=-1:-1:-1:-1:1]
Expand: -1 x -1, -1 ; -1 (-1=autodetect) osd: 1
================================================== ========================
Opening video decoder: [raw] RAW Uncompressed Video
VDec: vo config request - 320 x 240 (preferred csp: Planar YV12)
VDec: using Planar YV12 as output csp (no 0)
Movie-Aspect is undefined - no prescaling applied.
Detected video codec: [rawyv12] vfm:raw (RAW YV12)
================================================== ========================
MP3 audio selected
Writing AVI header...
Forcing audio preload to 0, max pts correction to 0
Pos: 30.0s 714f ( 0%) 24fps Trem: 0min 0mb A-V:0.000 [1335:127]

CBR audio: 16000 bytes/sec, 418 bytes/block

Writing AVI index...
Fixup AVI header...

Video stream: 1335.588 kbit/s (166948 bps) size: 5008453 bytes 30.000 secs 714 frames

Audio stream: 128.000 kbit/s (15999 bps) size: 479399 bytes 29.962 secs
------------------------------------------------------
video-record
Parameter 1 = Dateiname (z.B. test)
Parameter 2 = Zeit (z.B. 56 oder 01:10:20 oder 100mb)
Parameter 3 = Channel (z.B. E10)
Parameter 4 = Videobitrate (z.b. 1400)
Parameter 5 = Audiobitrae (z.b. 128)
------------------------------------------------------


das ist der text den ich auf der Konsole angezeigt bekomme. Nimmt der den ton auf spielt ihn aber nich ab oder nimmt der erst garkeinen ton auf?

wäre schön wenn mir jemand von euch weiterhelfen könnte!!

mfg sphinx

Eremit
02.11.02, 12:13
der ton wurde aufgenommen.
Audio stream: 128.000 kbit/s (15999 bps) size: 479399 bytes 29.962 secs

allerdings hatte ich auch das problem, dass nach einer gewissen zeit der ton leichte probleme hatte. entweder kann er so schnell nicht nach mp3 konvertieren oder das problem liegt woanders. ich habe das problem gelöst indem ich den ton nicht als mp3 konvertiere sondern als pcm lasse bzw. kopiere ( -oac copy ). dadurch steigt zwar die dateigrösse etwas an aber der ton funktioniert nun vollständig und grosse dateien werden nun sofort gestartet. bei der vorherigen version mit dem mp3 wurde vom mplayer wegen des fehlers immer erst die ganze datei durchgelesen. dauerte bei grossen dateien halt recht lange.

hier die änderungen:
anstatt "-oac" mp3lame sollte "-oac copy" stehen.
"-lameopts" kann dann natürlich ganz gelöscht werden.
allternativ kann man die tv-optionen ändern um die audio-bitrate niedrig zu halten. "audiorate=22100" in z.b. "audiorate=11100" ändern.


Eremit

sphinx
02.11.02, 13:05
also dat aufnehmen geht aber der MPlayer will es nicht abspielen sag er finden den Audio Codec 0xC040 nicht!

was kann ich tun?

mfg sphinx

Eremit
02.11.02, 13:35
was hast du denn für ein system? suse 8.1?
vielleicht solltest du den mplayer mal selber neu kompilieren und vorher natürlich auch die codecs wie ffmpeg, divx, win32-codecs usw. und auch z.b. libdvdread, libdvdcss um z.b. dvds zu sehen.

ausserdem beim kompilieren bitte mit angeben:
beispiel:
./configure --enable-gui --enable-largefiles --enable-tv --enable-divx4linux --enable-dvdread --enable-win32 --enable-vorbis --enable-libfame --language=de --with-win32libdir=/usr/lib/win32

............

du musst halt dann dafür selber sorgen, dass alles benötigte da ist.

Eremit