mencoder + tv felvétel [megoldva]

Sziasztok!

Van egy szkriptem, amivel TV-tunerből szoktam felvenni (Pinnacle PCTV Analog Pro PCI) Video DVD-hez megfelelő formátumban:-- eleje --


#!/bin/bash

name="$1"
channel="$2"
bitrate="$3"

if [ -n "$4" ] ; then
    duration="-endpos $4"
else
    duration=""
fi

mencoder tv:// -quiet -o "$name" -tv driver=v4l2:input=0:normid=0:amode=1:width=720:height=576:freq="$channel" \
    -of mpeg -mpegopts format=dvd:tsaf -ovc lavc -oac lavc -lavcopts \
    vcodec=mpeg2video:vbitrate="$bitrate":vrc_buf_size=1835:vrc_minrate=0:vrc_maxrate=9800:keyint=15:\
    aspect=4/3:acodec=ac3:abitrate=192 -ofps 25 -vf harddup,pp=lb -srate 48000 -af lavcresample $duration

-- vége --

Használat:
$ tvrec filenév csatorna bitráta [időtartam]

Például (Bp-i UPC) MTV1-ről 1500 kbps-sel felvenni másfél órát:


$ tvrec mtv1.mpg 175.25 1500 01:30:00

Mostanáig rendesen működött, de most a hangfelvétel módját egy mikrofon csatlakoztatása miatt meg kellett változtatnom. Ezért a "-tv" opcióhoz hozzáírtam a ":alsa:adevice=hw.1,0" kiegészítést, hogy mostantól a kártyáról vegye fel a hangot, és ne az ALSA CD inputjáról. És működik is, azonban megjelent egy probléma: a felvett anyagot mindegyik lejátszó kb. dupla sebességgel játssza vissza. Tudja esetleg valaki, mi lehet a hiba?

Hozzászólások

esetleg a -tv utani opcioknal a forcechan=2:amode=1 opciokkal lehet probalkozni, vagy ennek egy variansaval (csak az egyik pl.) hatha segit - ha jol emlekszem nekem segitett.

- Use the Source Luke ! -

az az osszefugges, hogy monoban vesz fel de sztereoban jatszik -> dupla sebesseg. vagy valami ilyesmi, mondom nekem volt hasonlo problemam. nem azt mondom, hogy biztos segit, de egy probat meger az okoskodas helyett.

szerk: jo nem dupla a sebesseg (hiszen akkor magasabb lenne a hangja mindennek), de az idozites nalam akkor is el tudott romlani mplayerrel/mencoderrel emiatt

- Use the Source Luke ! -

ja es en ezenfelul a audiorate=44100 -at is megadom (gondolom valami miatt kellett).
nem gyozom hangsulyozni, hogy az hogy te nem latod az osszefuggest nem jelenti azt, hogy nem erdemes kiprobalni, mert nekem segitett (azert adom meg ezeket az opciokat mindig, mondjuk az amode-ot nem). persze lehet, hogy nalad ezek nem segitenek - viszont kivancsi vagyok az eredmenyre.

- Use the Source Luke ! -

na kiprobaltad a forcechan=2 -t? mondom nekem az segitett hasonlo esetben regebben.

amugy megprobaltam reprodukalni a hibat, de nem tudtam most, talan mert a tunerkartyabol nem tudok felvenni.

- Use the Source Luke ! -

Kipróbáltam mindent, de sajnos sehogy sem ment a dolog. Igazad lehet, a hang felvételével van a probléma. Most kivettem a "-quiet" opciót, és látszik, hogy a felvétel kb. 0.3 mp-enként leáll egy pillanatra, és kiírja, hogy "Skipping frame!" - mintha a hangfelvétel lemaradása miatt dobná el a videót. Lejátszáskor meg persze hiányzik az eldobott rész, és így annyival gyorsabb lesz. Folytatom a bíbelődést...

Nos, a "-tv"-hez az "audiorate=32000"-et hozzátéve működik a dolog. Sajnos más értéket nem tudok megetetni vele, mert akkor az alapértelmezett 48000-re vált, és az túl sok: elkezdi eldobálni a frame-eket. 44100-at sem fogad el, de a 32000-et sikerült elfogadtatni, és ez már elég kis érték a folyamatos felvételhez. (Az alsa CD-inputon keresztül simán megy 48000-rel is).

Azt hiszem, valami szűk keresztmetszet lehet az ok, az "saa7134-alsa" kernelmodulra gyanakszom (Ubuntu Feisty). Vagy lehet, hogy kéne neki valami modulparaméter noszogatásképpen?! Jelenleg csak a "disable_ir=1"-et használom emiatt.

Szerk.: Ez tekinthető megoldásnak? Mert akkor lezárom a témát.