Sundtek Support Forum

Deutsch => Software Sundtek Ltd. => Thema gestartet von: ingo am September 03, 2012, 05:26:37 Nachmittag

Titel: How to record analog-tv with mencoder?
Beitrag von: ingo am September 03, 2012, 05:26:37 Nachmittag
I recently received my Media TV Pro stick and got it work to watch analog TV via cable (Gremany) and FM radio..

First I tried to watch with 'tvtime' but that results in frequently lost frames with short stuttering during playback. 'xawtv' however works fine. I am using the latest driver dd Aug. 20th on Debian-Wheezy-amd64, CPU and graphics card is Ivy-Bridge i5-3570K with Intel HD4000 graphics.

I tried to record using the OSD-menu of 'xawtv', but this results in an error messages and says:

xawtv -c /dev/video0
This is xawtv-3.102, running on Linux/x86_64 (3.2.0-3-amd64)
xinerama 0: 1920x1080+0+0
Alsa devices: cap: (null) (/dev/video0), out: default
v4l2: ioctl(fildes = 5 { sa_family = PF_UNIX } => { sa_family = PF_UNIX, sun_path = "" }, request = VIDIOC_DQBUF, struct v4l2_buffer *data = { index = 0, type = 0, memory = 0 }): success
oss: open /dev/dsp: Datei oder Verzeichnis nicht gefunden

The Sundtek driver however creates /dev/dsp0. I tried to create a symlik 'ln -s dsp0 dsp', but that doesn't work either.

Then I tried to record usig 'mencoder' from the command line:

mencoder -tv norm=PAL-BG:device=/dev/video0:fps=25:buffersize=64:adevice=/dev/dsp0:amode=1:audiorate=48000:input=1 -af format=s16le -ovc lavc -lavcopts vcodec=mjpeg -oac pcm -o test.avi tv://

MEncoder 1.1-4.7 (C) 2000-2012 MPlayer Team
success: format: 9  data: 0x0 - 0x0
TV file format detected.
Selected driver: v4l2
 name: Video 4 Linux 2 input
 author: Martin Olschewski <olschewski@zpr.uni-koeln.de>
 comment: first try, more to come ;-)
Selected device: Sundtek MediaTV
 Tuner cap: STEREO
 Tuner rxs:
 Capabilities:  video capture  tuner  audio  streaming
 supported norms: 0 = PAL-BG; 1 = PAL-DK; 2 = PAL-I; 3 = PAL-M; 4 = NTSC-M; 5 = Secam-L; 6 = Secam-LC; 7 = Secam-K;
 inputs: 0 = Television; 1 = Composite; 2 = S-Video;
 Current input: 1
 Current format: YUYV
v4l2: current audio mode is : STEREO
unsupported format
Audio block size too low, setting to 16384!
[V] filefmt:9  fourcc:0x32595559  size:640x480  fps:25.000  ftime:=0.0400
==========================================================================
Opening audio decoder: [pcm] Uncompressed PCM audio decoder
AUDIO: 48000 Hz, 2 ch, s16le, 1536.0 kbit/100.00% (ratio: 192000->192000)
Selected audio codec: [pcm] afm: pcm (Uncompressed PCM)
==========================================================================
libavcodec version 54.23.100 (internal)
Opening video filter: [expand osd=1]
Expand: -1 x -1, -1 ; -1, osd: 1, aspect: 0.000000, round: 1
==========================================================================
Opening video decoder: [raw] RAW Uncompressed Video
Could not find matching colorspace - retrying with -vf scale...
Opening video filter: [scale]
Movie-Aspect is undefined - no prescaling applied.
[swscaler @ 0xf3cc20]using unscaled yuyv422 -> yuv420p special converter
videocodec: libavcodec (640x480 fourcc=47504a4d [MJPG])
[mjpeg @ 0xe73020]Specified pix_fmt is not supported
Could not open codec.
FATAL: Cannot initialize video driver.
VDecoder init failed :(
Opening video decoder: [ffmpeg] FFmpeg's libavcodec codec family
Selected video codec: [ffrawyuy2] vfm: ffmpeg (RAW YUY2)
==========================================================================
Forcing audio preload to 0, max pts correction to 0.
Movie-Aspect is undefined - no prescaling applied.
videocodec: libavcodec (640x480 fourcc=47504a4d [MJPG])
[mjpeg @ 0xe73020]Specified pix_fmt is not supported
Could not open codec.
FATAL: Cannot initialize video driver.

Exiting...

I am quite sure the proper codecs are installed, also I can watch smoothly on the screen.


The driver itself reports:

/opt/bin/mediaclient -e
**** List of Media Hardware Devices ****
device 0: [Sundtek MediaTV Pro (USB 2.0)]  DVB-C, DVB-T, ANALOG-TV, FM-RADIO, REMOTE-CONTROL, OSS-AUDIO, RDS
  [SERIAL]:
     ID: U120820070038
  [DVB-C]:
     FRONTEND: /dev/dvb/adapter0/frontend0
     DVR: /dev/dvb/adapter0/dvr0
     DMX: /dev/dvb/adapter0/demux0
  [DVB-T]:
     FRONTEND: /dev/dvb/adapter0/frontend0
     DVR: /dev/dvb/adapter0/dvr0
     DMX: /dev/dvb/adapter0/demux0
  [ANALOG-TV]:
     VIDEO0: /dev/video0
     VBI0: /dev/vbi0
  [FM-RADIO]:
     RADIO0: /dev/radio0
     RDS: /dev/rds0
  [REMOTECONTROL]:
     INPUT0: /dev/mediainput0
  [OSS]:
     OSS0: /dev/dsp0


and /var/log/messages says:

cat /var/log/messages | grep -i -A 1 -B3 sundtek
usb 1-1.3: New USB device found, idVendor=eb1a, idProduct=51b2
usb 1-1.3: New USB device strings: Mfr=1, Product=3, SerialNumber=2
usb 1-1.3: Product: MediaTV Pro
usb 1-1.3: Manufacturer: Sundtek
usb 1-1.3: SerialNumber: U120820070038
....
input: Sundtek Ltd. Remote Control as /devices/virtual/input/input11

Any hints how I can manage to record analog-tv?

With best regards,
Ingo
Titel: Re:How to record analog-tv with mencoder?
Beitrag von: Sundtek am September 03, 2012, 07:06:34 Nachmittag
Zitat
sudo -s
cd /tmp
wget http://sundtek.de/support/buildffmpeg.sh
chmod 777 buildffmpeg.sh
./buildffmpeg.sh

/opt/bin/mediaclient --shutdown
sudo /opt/bin/mediaclient --start

anschliessend mittels tvtime den Sender auswählen

cat /dev/video1 > /tmp/test.mpg
Titel: Re:How to record analog-tv with mencoder?
Beitrag von: ingo am September 03, 2012, 08:04:43 Nachmittag
Zunächst Danke für die schnelle Antwort!

Leider funktioniert der Build nicht:

HEAD is now at cfd64ee... Merge remote-tracking branch 'qatar/master'
+ ./configure --disable-filters --disable-devices --disable-encoders --disable-decoders --disable-muxers --disable-demuxers --enable-shared --enable-pthreads --enable-libmp3lame --enable-encoder=mpeg2video,libmp3lame,mp2 --prefix=/opt/bin/plugins --enable-nonfree --disable-bsfs --disable-protocols --disable-parsers --enable-muxer=mpegts,mpeg2video,mpeg2dvd
ERROR: libmp3lame >= 3.98.3 not found

If you think configure made a mistake, make sure you are using the latest
version from Git.  If the latest version fails, report the problem to the
ffmpeg-user@ffmpeg.org mailing list or IRC #ffmpeg on irc.freenode.net.
Include the log file "config.log" produced by configure as this will help
solving the problem.
+ [ 1 != 0 ]
+ echo failed to configure ffmpeg
failed to configure ffmpeg
+ make
Makefile:2: config.mak: Datei oder Verzeichnis nicht gefunden
Makefile:45: /common.mak: Datei oder Verzeichnis nicht gefunden
Makefile:85: /libavutil/Makefile: Datei oder Verzeichnis nicht gefunden
Makefile:85: /library.mak: Datei oder Verzeichnis nicht gefunden
Makefile:162: /doc/Makefile: Datei oder Verzeichnis nicht gefunden
Makefile:163: /tests/Makefile: Datei oder Verzeichnis nicht gefunden
make: *** Keine Regel, um »/tests/Makefile« zu erstellen.  Schluss.
+ [ 2 != 0 ]
+ echo failed to build ffmpeg
failed to build ffmpeg
+ make install
Makefile:2: config.mak: Datei oder Verzeichnis nicht gefunden
Makefile:45: /common.mak: Datei oder Verzeichnis nicht gefunden
Makefile:85: /libavutil/Makefile: Datei oder Verzeichnis nicht gefunden
Makefile:85: /library.mak: Datei oder Verzeichnis nicht gefunden
Makefile:162: /doc/Makefile: Datei oder Verzeichnis nicht gefunden
Makefile:163: /tests/Makefile: Datei oder Verzeichnis nicht gefunden
make: *** Keine Regel, um »/tests/Makefile« zu erstellen.  Schluss.
+ [ 2 != 0 ]
+ echo failed to install ffmpeg
failed to install ffmpeg


Zur Info: 'yasm' mußte ich nachinstallieren. Die Fehlermeldung
ERROR: libmp3lame >= 3.98.3 not found

bekomme ich aber nicht weg, obwohl ich den SymLink auf libmp3lame.so.0.0.0 manuell angelegt habe (per default ist nur der Link zu libmp3lame.so.0 vorhanden. Problem ist wohl, daß der interne Paketname "libmp3lame0" ist ?

/usr/lib/x86_64-linux-gnu# ls -l libmp3*
lrwxrwxrwx 1 root root     19 Sep  3 19:39 libmp3lame.so -> libmp3lame.so.0.0.0
lrwxrwxrwx 1 root root     19 Mai  1 15:26 libmp3lame.so.0 -> libmp3lame.so.0.0.0
-rw-r--r-- 1 root root 298536 Mai  1 15:26 libmp3lame.so.0.0.0

und die installierte Version ist:
dpkg -l libmp3lame0
Gewünscht=Unbekannt/Installieren/R=Entfernen/P=Vollständig Löschen/Halten
| Status=Nicht/Installiert/Config/U=Entpackt/halb konFiguriert/
         Halb installiert/Trigger erWartet/Trigger anhängig
|/ Fehler?=(kein)/R=Neuinstallation notwendig (Status, Fehler: GROSS=schlecht)
||/ Name               Version        Architektur    Beschreibung
+++-==================-==============-==============-==========================================
ii  libmp3lame0:amd64  1:3.99.5-dmo1  amd64          LAME Ain't an MP3 Encoder (shared library)

What to do?

Ach ja,
Danke für die Info, daß der Output von /dev/videoX im mpeg-Format ist und ein einfaches cat ... ausreicht!

Beste Grüße,
Ingo
Titel: Re:How to record analog-tv with mencoder?
Beitrag von: ingo am September 03, 2012, 08:28:05 Nachmittag
Noch eine Info - hatte ich vergessen:

ii  ffmpeg         7:0.11.1-dmo amd64
Es ist die Version von deb.multimedia für Wheezy.

Ingo
Titel: Re:How to record analog-tv with mencoder?
Beitrag von: Sundtek am September 03, 2012, 08:56:43 Nachmittag
apt-get install libmp3lame-dev

Anschließend nocheinmal das Script ausführen. Die Aufnahme mit dem Treiber wurde soweit über Stunden hinweg synchron getestet.
Titel: Re:How to record analog-tv with mencoder?
Beitrag von: ingo am September 03, 2012, 09:20:08 Nachmittag
1000 Dank!

Alles geht, tvtime ruckelt nicht mehr und /dev/video0 liefert jetzt auch einen mpeg-Stream.

Ingo

P.S.: Woran hat's denn nun letztendlich gefehlt?
Titel: Re:How to record analog-tv with mencoder?
Beitrag von: ingo am September 03, 2012, 11:11:01 Nachmittag
Vielleicht kann ich mich mit dieser Info noch für den super Service bedanken. Der entscheidende Tipp war die Zeile zur Aufnahme des MPEG-Streans:
cat /dev/video1 > /tmp/test.mpg
Da habe doch glatt mein geliebtes TV-Record von Christian Rapp (ist original für Hauppauge PVR-Karten gedacht) installiert. Quelle: http://sourceforge.net/projects/tv-viewer/.

Und siehe da, es klappt einwandfrei. Das Beste dabei: es enthält einen sehr komfortablen Recorder, der zeitgesteuert aufnehmen kann, auch über Reboots hinweg. Habe das gute Stück mit meiner alten PVR150 jahrelang benutzt - einfach praktisch.

Daß man wegen der Herkunft auch die 'ivtv-utils' mit > 50MB installieren mus, kann man sicher ändern. Ich werde die Info auch bei IVTV bekannt machen, ist der ideale analog TV-Recorder und Viewer für uns in Germania.

Beste Grüße,
Ingo
Titel: Re:How to record analog-tv with mencoder?
Beitrag von: Sundtek am September 03, 2012, 11:14:24 Nachmittag
Danke für die Information, der Treiber hat eine IVTV Emulationsschicht die das MPEG-2 ausgibt. Mit dem Skript hast du ffmpeg als Plugin für den Treiber erstellt. Durch das Plugin kommt dann die zusätzliche Funktionalität.

Einige Firmenkunden verwenden dies zum streamen, Du bist wohl der erste Endkunde der damit etwas anfangen kann :-)
Titel: Re:How to record analog-tv with mencoder?
Beitrag von: ingo am September 05, 2012, 08:38:39 Nachmittag
Noch eine Frage zu meiner Kombination mit TV-Viewer:

Fernsehen schauen geht perfekt! Nur Recording und die Nutzung von Timeshift benötigt einen Trick:

Ich sag's mal salopp: "man muß /dev/video0 busy halten", sonst wird nur eine 0 Byte-Datei aufgezeichnet.

Mein Würgeround: bevor man aufzeichnet bzw. Timeshift aktiviert, einfach im Terminal
cat /dev/video0 > /dev/nullstarten und während der ganzen Zeit laufen lassen. Dann funktioniert alles bestens. Wo müßte man da anfangen zu suchen, woran das liegt? (habe inzwischen mit der stable 0.8.1.1 und der Beta 0.8.2b1 getestet).

Beste Grüße,
Ingo
Titel: Re:How to record analog-tv with mencoder?
Beitrag von: Sundtek am September 05, 2012, 09:21:49 Nachmittag
Wir sehen es uns morgen kurz mal an.
Titel: Re:How to record analog-tv with mencoder?
Beitrag von: ingo am September 06, 2012, 09:44:12 Vormittag
Wir sehen es uns morgen kurz mal an.

Danke, zur Info: Dokumentation, Installation, ... findet sich hier: http://tv-viewer.sourceforge.net/mediawiki/index.php/Documentation:dev:installation.

Hinweis: die 64-bit Version von Tcl/TK 8.5 in Debian-Squeeze (und Ubuntu-Lucid) hat einen bekannten Bug und geht dehalb nicht korrekt. Da sollte man Tcl/Tk von ActiveState verwenden. In Wheezy ist alles ok.
Titel: Re:How to record analog-tv with mencoder?
Beitrag von: ingo am September 09, 2012, 10:35:12 Nachmittag
Ich habe inzwischen auch die ganz aktuelle Version von Christian aus dem trunk getestet:
http://tv-viewer.sourceforge.net/mediawiki/index.php/Development_Bazaar

Es ist die 0.8.2b2 und damit fast die finale 0.8.2. Leider ist das Problem das gleiche.
Meine Vermutung: der Stick liefert seinen Stream nicht auf /dev/videoX, wenn man nicht aktiv "daraus saugt", sondern nur "mitschneidet, was dort herauskommt". Mit den PVR-Karten und Hardware-Encoder geht tv-viewer dagegen problemlos.

Sorry, wenn das sehr laienhaft ausgedrückt ist, aber mit programmieren kenne ich mich praktisch nicht aus. Leider hat Christian im Moment wenig Zeit für die Fertigstellung der "final 0.8.2", Bug-Reports sind aber noch willkommen. Er wird wohl den MediaStick Pro in die Liste der unterstützten Geräte aufnehmen.

Beste Grüße,
Ingo
Titel: Re:How to record analog-tv with mencoder?
Beitrag von: ingo am September 28, 2012, 06:14:58 Nachmittag
So, ich habe jetzt nochmal auf komplett anderer Hardware gegengecheckt:

aktueller PC:
Intel DH77EB mit H77-Chipsatz un Ivy-Bridge CPU an einem USB2.0-Port des MB, BS: Debian-Wheezy, aktuell 64-bit.

"alter" PC:
ASUS M2N-E mit nForce 570-Ultra Chipsatz und Athlon64-X2 an einem USB-Port des MB, BS: Debian-Squeeze-amd64. Zusätzlich hat dieser PC noch PCI-Slots und in einem einer Happauge PVR150, die einwandfrei mit beiden Vesionen des TV-Viewer (0.8.1.1 und 0.8.2b2) funktioniert.

Auf beiden PC's habe ich das oben beschiebene Phänomen mit dem MediaTV Pro , das analoges TV-sehen einwandfrei geht, aber bei Recording der Stream aus /dev/videoX nur eine Datei mit 0 Bytes Größe liefert. Auch der "Workaround", vor der geplanten Aufnahme ein "cat /dev/videoX > /dev/null" zu starten, hilft in beiden Fällen und liefert ein MPEG2-Video.

Noch eine Frage: gibt es eine Möglichkeit, die Bitrate bzw. Qualität der Codierung für diesen Weg/das Plugin einzusetllen? Gibt es inzwischen was Neues bei Sundtek zu dieser Sache?

Beste Grüße,
Ingo
Titel: Re:How to record analog-tv with mencoder?
Beitrag von: Sundtek am Oktober 02, 2012, 09:43:15 Nachmittag
Es wird aktuell noch am nächsten Update gearbeitet, sobald das abgeschlossen ist kann dieser Bereich auch feingetuned werden (hoffentlich noch diese Woche).
Titel: Re:How to record analog-tv with mencoder?
Beitrag von: Sundtek am Oktober 06, 2012, 10:50:31 Nachmittag
Das Problem bezüglich tv-viewer ist klar, wir haben soweit einen Workaround für diese Applikation hinzugefügt. Es handelt sich bei unserem Tuner um einen Tuner der Rohdaten zur Verfügung stellt ohne explizite Konfiguration weiß der Treiber nicht das die Applikation IVTV Daten erhalten möchte.

Mit dem kommendem Update klappt auch die Aufnahme mittels tv-viewer.

(http://sundtek.de/images/tvviewer-small.jpg)
Titel: Re:How to record analog-tv with mencoder?
Beitrag von: ingo am Oktober 07, 2012, 05:13:37 Nachmittag
Großartig und vielen Dank!

Das ist ein Super-Service und ich warte auf das Release des neuen Treibers. Melde mich sobald ich es hier getestet habe. Muß ich auch das IVTV-Plugin neu bauen?

Viele Grüße,
Ingo
Titel: Re:How to record analog-tv with mencoder?
Beitrag von: Sundtek am Oktober 07, 2012, 05:28:04 Nachmittag
Der Treiber ist bereits freigegeben.
Titel: Re:How to record analog-tv with mencoder?
Beitrag von: ingo am Oktober 07, 2012, 06:29:31 Nachmittag
Der Treiber ist bereits freigegeben.

und jetzt klappt auch die Aufnahme mit TV-Viewer 0.8.2b2 einwandfrei inclusive Time-Shift - DANKE!
Standby des Sticks klappt auch, schaltet sich 15 sec. nach Ende der Aufnahme ab.

Und für alle anderen interessierten User hier der Link zu TV-Viewer:
http://sourceforge.net/projects/tv-viewer/

Ingo
Titel: Re:How to record analog-tv with mencoder?
Beitrag von: Christian Becker am April 21, 2014, 08:36:32 Vormittag
Hallo,

schön zu lesen, dass die Aufnahme im Prinzip klappen sollte. Das Programm TV-Viewer war ein toller Tipp. Es bietet genau das, was ich gesucht habe.

Allerdings habe ich ein Problem: Es klappt beides nicht.
Ich habe das buildffmpeg.sh Skript ausgeführt und es wurde ohne Fehler installiert. TV-Viewer ist installiert und das Programm an sich läuft. Auch der Sendersuchlauf funktioniert. Allerdings kann ich die Sender dann nicht anschauen, da ich kein Bild bekomme.
TV-Time funktioniert tadellos, mit Bild und Ton, wie es sich gehört. Damit kann ich allerdings nicht aufnehmen.

Das einfache cat /dev/video1 > /tmp/test.mpg funktioniert nicht. Ich bekomme nur eine 0 byte Datei. Wenn ich vorher in einem anderen Terminal /dev/video1 nach /dev/null catte, wie das jemand als Workaround für TV-Viewer vorgeschlagen hatte, bekomme ich eine Datei, die offensichtlich den Stream enthält von dem Zeitpunkt, zu dem ich cat /dev/video1 > /dev/null gestartet habe bis zu dem an dem ich video1 in eine Datei catte. Nicht sonderlich toll. Allerdings klappt auch das nicht immer.

Was klappt, ist TV-Time zu starten und dann per cat /dev/video1 den Stream aufzuzeichnen oder mit TV-Viewer zu gucken/ aufzunehmen.
Irgendeine Idee, wie ich TV-Viewer oder einfach nur cat benutzen kann, ohne auch TV-Time laufen zu lassen?

System: Linux Mint 15 Olivia 64 bit mit MATE Desktop
uname -a: 3.8.0-19-generic #29-Ubuntu SMP Wed Apr 17 18:16:28 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux

Wenn irgendwelche Infos fehlen liefere ich die gerne nach.
Titel: Re:How to record analog-tv with mencoder?
Beitrag von: Sundtek am April 21, 2014, 12:48:24 Nachmittag
Starte tvtime und starte in einem 2. Fenster cat /dev/video1 > /tmp/test.mpg.
Titel: Re:How to record analog-tv with mencoder?
Beitrag von: Christian Becker am April 21, 2014, 07:47:55 Nachmittag
Ja, sagte ich ja, das klappt. Ich muss also TV-Time laufen lassen, um was aufzunehmen? OK.

Frohe Ostern noch!
Titel: Re:How to record analog-tv with mencoder?
Beitrag von: Christian Becker am Oktober 22, 2014, 11:45:18 Vormittag
Hallo,

nachdem das seit April eigentlich gut geklappt hat, habe ich jetzt wieder ein Problem (nach Update auf Linux Mint 17)

Der Treiber funktioniert, mit TV-Time kann ich analog TV gucken :D.
Aufnahmen sind aber ein Problem:
cat /dev/video1 > test.mpg liefert mir ein Video, allerdings ohne Ton.
TV-Viewer, das mir vorher die Aufnahme ermöglicht hat, habe ich neu installiert, aber das funktioniert nun leider nicht mehr. Programmsuchlauf klappt und das Umschalten der Programme, aber die Anzeige und damit die Aufnahme geht nicht mehr (auch nicht, wenn TV-Time läuft, was vorher die Lösung war).

Hat jemand eine Idee, was ich noch machen kann/ alternativ zu TV-Viewer benutzen kann?
Titel: Re:How to record analog-tv with mencoder?
Beitrag von: Sundtek am November 24, 2014, 01:43:35 Vormittag
Treiber aktualisieren dann sollte es wieder klappen.

buildffmpeg ist nun auch an die aktuelle FFMPEG Version gebunden.

(http://sundtek.de/images/tvviewer_2014_small.jpg) (http://sundtek.de/images/tvviewer_2014.jpg)
Titel: Re:How to record analog-tv with mencoder?
Beitrag von: Christian Becker am November 30, 2014, 05:19:07 Nachmittag
Danke, ihre seid die Besten.
Nagut, das ist vielleicht übertrieben. Auf jeden Fall die besten, die ich kenne. :D