Autor Thema: Analog TV ins Netzwerk streamen  (Gelesen 42989 mal)

Sundtek

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 8604
    • Profil anzeigen
Re:Analog TV ins Netzwerk streamen
« Antwort #15 am: September 04, 2011, 08:07:26 Vormittag »
Das ist dann wohl ein ffmpeg Codecproblem auf deiner Seite.

VLC kann den Datenstrom zumindestens von STDIN lesen.

z.B sobald getuned wurde: vlc /dev/videoN
Failure is a good thing! I'll fix it

Chronos

  • Newbie
  • *
  • Beiträge: 15
    • Profil anzeigen
Re:Analog TV ins Netzwerk streamen
« Antwort #16 am: September 04, 2011, 12:12:33 Nachmittag »
sowas ahbe ich befürchtet,
Ich habe jedoch ffmpeg instaliert und so ziehmlich die meisten codec pakete die es dazu gab.
Bevor ich jetzt beim rumbasteln alles zerschieße, hier erstmal die Fehelrmeldung von vnc:

VLC media player 1.0.6 Goldeneye
[0x20780c8] main libvlc: Running vlc with the default interface. Use 'cvlc' to use vlc without interface.
libdvdnav: Using dvdnav version 4.1.3
libdvdread: Encrypted DVD support unavailable.
************************************************
**                                            **
**  No css library available. See             **
**  /usr/share/doc/libdvdread4/README.Debian  **
**  for more information.                     **
**                                            **
************************************************
libdvdnav: Can't seek to block 32
libdvdnav: Unable to find map file '/home/user/.dvdnav/.map'
libdvdread: Can't seek to block 256
libdvdnav:DVDOpenFileUDF:UDFFindFile /VIDEO_TS/VIDEO_TS.IFO failed
libdvdread: Can't seek to block 256
libdvdnav:DVDOpenFileUDF:UDFFindFile /VIDEO_TS/VIDEO_TS.BUP failed
libdvdread: Can't open file VIDEO_TS.IFO.
libdvdnav: vm: failed to read VIDEO_TS.IFO
[0x22df798] vcd access error: could not read TOCHDR
[0x22df798] vcd access error: no movie tracks found
Ist es korrekt, dass vlc den stream als dvd versteht.
Auch wenn ich Tvtime nciht laufne habe erhalte ich die selbe fehlermeldung bei
"vlc /dev/video0"
mit "vlc v4l2://:dev=/dev/video0" erhalt eich ton (internal) und (gequetschtes-) Bild wenn tvtime nicht läuft.
ansonsten eine Fehlermeldung (vonwegen zugriffsfehler)

ChrisPHL

  • Newbie
  • *
  • Beiträge: 10
    • Profil anzeigen
Re:Analog TV ins Netzwerk streamen
« Antwort #17 am: September 27, 2011, 08:59:06 Vormittag »
Bei mir klappt das Abspielen mit dem VLC auch nicht "direkt" (vlc /dev/videoN), sondern nur mit Hilfe einer "named pipe": (Und nur unter Verwendung des weiter oben erwähnten 64bit-Plugins!):
FIFO=/tmp/buffer
mkfifo $FIFO
cat /dev/videoN > $FIFO &
vlc $FIFO
Allerdings muss der VLC "rechtzeitig" den Puffer lesen, da sonst der cat-Befehl (wegen Pufferüberlauf?) zurück kommt. Beim Beenden des VLC (z.B.: Strg+C) schließt der cat-Aufruf automatisch. Nach gut drei Tagen läuft der Ton dann etwa 0,5sec bis 1,0sec asynchron. Für einen langen TV-Abend sollte es also schon reichen.

Hat schon jemand eine Variante gefunden, mit der man Bild und Ton direkt per SOURCE_VIDEO_DEV=/dev/video0
SOURCE_AUDIO_DEV=/dev/dsp0
vlc -I dummy -vvv  v4l2://:v4l2-dev=$SOURCE_VIDEO_DEV:v4l2-adev=$SOURCE_AUDIO_DEV
(oder ähnlich) dem VLC übergeben kann? Vor allem für das Streaming ins Netz ist das wichtig, damit man nicht nur ein Bild am anderen Ende heraus bekommt. (Der oben gezeigte Weg schaufelt auch den Ton durchs Netz, benötigt aber das noch in der Entwicklung befindliche Plugin.)

Chronos

  • Newbie
  • *
  • Beiträge: 15
    • Profil anzeigen
Re:Analog TV ins Netzwerk streamen
« Antwort #18 am: September 27, 2011, 04:22:07 Nachmittag »
Bei mir klappt das Abspielen mit dem VLC auch nicht "direkt" (vlc /dev/videoN), sondern nur mit Hilfe einer "named pipe": (Und nur unter Verwendung des weiter oben erwähnten 64bit-Plugins!):
FIFO=/tmp/buffer
mkfifo $FIFO
cat /dev/videoN > $FIFO &
vlc $FIFO


Ich habe die "pipe" ausprobiert bzw. mir eine shell geschrieben, jedoch zeigt vlc nichts an nach dem öffnen. Es wird jedoch auch keine Fehlermeldung angezeigt (hab im hintergrund tvtime laufen).
« Letzte Änderung: September 27, 2011, 04:29:24 Nachmittag von Chronos »

ChrisPHL

  • Newbie
  • *
  • Beiträge: 10
    • Profil anzeigen
Re:Analog TV ins Netzwerk streamen
« Antwort #19 am: September 28, 2011, 03:38:14 Nachmittag »
Du kannst testweise auch erst einmal die Befehle zum füllen des Puffers (cat) und zum Abspielen aus dem Puffer (vlc) in verschiedenen Konsolen ausführen, um zu sehen, ob beide noch laufen bzw. welche Fehlermeldung sie ausspucken.
Manchmal kommt der cat schon zurück, bevor der vlc anfängt zu lesen... Allerdings hatte ich auch schon mit dem Datenstrom aus /dev/videoN Probleme, es kam nichts raus...(In so einem Fall hängt dann VLC auch einfach und kommt nicht zurück.). Testen kannst du das, indem du den cat-Befehl in eine Datei umleitest und dann die Dateigröße kurz mitverfolgst: Bleibt sie bei 0bytes oder wird sie immer größer?

Chronos

  • Newbie
  • *
  • Beiträge: 15
    • Profil anzeigen
Re:Analog TV ins Netzwerk streamen
« Antwort #20 am: September 28, 2011, 07:34:52 Nachmittag »
Oh stimmt, hab ich garnicht mehr drauf geachtet. Bei cat /tmp/videoX > datei.mpg erhalte ich auch nur audio.
die Dateigröße bleibt 0 byte.
Weist du was ich da tuen kann?
Vlc sagt etwas von mpg und missing header, aber das sit dann wohl weniger relevant

ChrisPHL

  • Newbie
  • *
  • Beiträge: 10
    • Profil anzeigen
Re:Analog TV ins Netzwerk streamen
« Antwort #21 am: September 29, 2011, 07:42:27 Vormittag »
An der Stelle musst du dich dann doch an den Support wenden: http://support.sundtek.de/cgi-bin/irc.cgi (Die Lösung interessiert mich auch ;-)). Der Sound wird wohl immer dann laut gestellt (mute=off), wenn ein Programm versucht, Daten von /dev/videoN zu lesen.

ChrisPHL

  • Newbie
  • *
  • Beiträge: 10
    • Profil anzeigen
Re:Analog TV ins Netzwerk streamen
« Antwort #22 am: Oktober 25, 2011, 01:32:02 Nachmittag »
Vor jedem Versuch, dem video device Daten zu entlocken müssen noch das Bildformat und die Kodierung eingestellt werden:
v4l2-ctl --set-fmt-video=width=720,height=576,pixelformat=`v4l2-ctl --list-formats | grep -B3 "MPEG Encoder" | grep Index | awk '{print $3}'`(nimmt den MPEG Encoder)
Laut mrec im Supportforum (in Kombination mit meiner fast 2 Wochen alten Erinnerung) sollte man aber eher das Format YUYV oder so verwenden. Für meine Zwecke arbeitet's aber auch mit dem MPEG Encoder. Die verfügbaren Formate listet v4l2-ctl auf:

~ $ v4l2-ctl --list-formats
ioctl: VIDIOC_ENUM_FMT
Index       : 0
Type        : Video Capture
Pixel Format: 'YUYV'
Name        : Y0-U-Y1-V, 16 bpp
[...]
Ebenso wie Bildformat und Kodierung muss der Sound per 'unmute' "aktiviert" werden:
v4l2-ctl --set-ctrl=mute=0Beide Maßnahmen zusammen führen dazu, dass der weiter oben von mir beschriebene "Datei_bleibt_0_bytes_groß-Fehler" ausbleibt.

UNB

  • Newbie
  • *
  • Beiträge: 1
    • Profil anzeigen
Re:Analog TV ins Netzwerk streamen
« Antwort #23 am: Oktober 30, 2011, 04:46:27 Nachmittag »
Excuse me for typing this in English, I sort of understand German when reading it, but writing in German is a complete different story :)

Could you please inform me on the status of analog TV support from Sundtek for tvheadend? As I understand from the postings in this topic official support was going to be released soon. As far as I know this hasn't happened yet, am I correct? And when it happens, will the Sundtek driver enable tvheadend to switch between the analog and the DVB-C mode of the tuner or will this be a manual action?

Chronos

  • Newbie
  • *
  • Beiträge: 15
    • Profil anzeigen
Re:Analog TV ins Netzwerk streamen
« Antwort #24 am: Oktober 30, 2011, 05:29:09 Nachmittag »
Vor jedem Versuch, dem video device Daten zu entlocken müssen noch das Bildformat und die Kodierung eingestellt werden:
Also ich habe es mal so probiert:
v4l2-ctl --set-fmt-video=width=720,height=576,pixelformat=`v4l2-ctl --list-formats | grep -B3 "MPEG Encoder" | grep Index | awk '{print $3}'`(nimmt den MPEG Encoder)
Laut mrec im Supportforum (in Kombination mit meiner fast 2 Wochen alten Erinnerung) sollte man aber eher das Format YUYV oder so verwenden. Für meine Zwecke arbeitet's aber auch mit dem MPEG Encoder. Die verfügbaren Formate listet v4l2-ctl auf:

~ $ v4l2-ctl --list-formats
ioctl: VIDIOC_ENUM_FMT
Index       : 0
Type        : Video Capture
Pixel Format: 'YUYV'
Name        : Y0-U-Y1-V, 16 bpp
[...]
Ebenso wie Bildformat und Kodierung muss der Sound per 'unmute' "aktiviert" werden:
v4l2-ctl --set-ctrl=mute=0Beide Maßnahmen zusammen führen dazu, dass der weiter oben von mir beschriebene "Datei_bleibt_0_bytes_groß-Fehler" ausbleibt.
Leide rohne erfolg, wenn tvtim läuft folgt ein error wenn nicht, dann wird der befehl ausgeführt, hat aber keinen effekt auf den Buffer/streaming möglichkeiten etc.
Das supportteam meinte es sei möglicherweise ein Coec-Problem meienrseits, ich habe jedoch alle ffmpeg codec's die ich finden konte instaliert und auch sonst kann ich so ziehmlich alles wiedergeben und vermutlich auch convertieren etc.
Noch irgentwer ideen?
Mir fehlt wirklich nur der ton wenn ich den irgentwo an einem "virtuellen"-device abgreifen könnte ginge es sogar ohne das neue plugin, würde es eh bevorzugen nicht noch tvtime im hintergrund laufen haben zu müßen.

ChrisPHL

  • Newbie
  • *
  • Beiträge: 10
    • Profil anzeigen
Re:Analog TV ins Netzwerk streamen
« Antwort #25 am: November 07, 2011, 02:43:01 Nachmittag »
Could you please inform me on the status of analog TV support from Sundtek for tvheadend? As I understand from the postings in this topic official support was going to be released soon. As far as I know this hasn't happened yet, am I correct? And when it happens, will the Sundtek driver enable tvheadend to switch between the analog and the DVB-C mode of the tuner or will this be a manual action?
You should ask this in a dedicated thread I think. To speed things up or answer that question for all others who are interessted you could try the IRC support chat.

ChrisPHL

  • Newbie
  • *
  • Beiträge: 10
    • Profil anzeigen
Re:Analog TV ins Netzwerk streamen
« Antwort #26 am: November 07, 2011, 02:47:03 Nachmittag »
Das supportteam meinte es sei möglicherweise ein Coec-Problem meienrseits, ich habe jedoch alle ffmpeg codec's die ich finden konte instaliert und auch sonst kann ich so ziehmlich alles wiedergeben und vermutlich auch convertieren etc.
Noch irgentwer ideen?
Ich habe auf meiner Kiste nach dieser Anleitung ffmpeg neu übersetzt und installiert, damit mir der VLC den Stream als MPEG-TS transkodieren kann. Vielleicht braucht das Plugin das auch... ;-)

Sundtek

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 8604
    • Profil anzeigen
Re:Analog TV ins Netzwerk streamen
« Antwort #27 am: November 29, 2011, 10:03:07 Nachmittag »
Wir haben es soeben ebenfalls überprüft, OSS Support gibt es zwar nicht im Userinterface, jedoch kann man darauf nach wievor von der Konsole aus zugreifen:

http://forum.videolan.org/viewtopic.php?f=13&t=91410&p=318875#p318875

Zitat
vlc v4l2:///dev/video0 :input-slave=oss:///dev/dsp0 :v4l2-standard=0 :v4l2-chroma= :v4l2-input=1 :v4l2-audio-input=0 :v4l2-io=0 :v4l2-width=-1 :v4l2-height=-1 :v4l2-aspect-ratio=4\:3 :v4l2-fps=0 :v4l2-caching=300 :no-v4l2-use-libv4l2 :v4l2-tuner=0 :v4l2-tuner-frequency=-1 :v4l2-tuner-audio-mode=0 :no-v4l2-controls-reset :v4l2-brightness=-1 :v4l2-contrast=-1 :v4l2-saturation=-1 :v4l2-hue=-1 :v4l2-black-level=-1 :v4l2-auto-white-balance=-1 :v4l2-do-white-balance=-1 :v4l2-red-balance=-1 :v4l2-blue-balance=-1 :v4l2-gamma=-1 :v4l2-exposure=-1 :v4l2-autogain=-1 :v4l2-gain=-1 :v4l2-hflip=-1 :v4l2-vflip=-1 :v4l2-hcenter=-1 :v4l2-vcenter=-1 :v4l2-audio-volume=-1 :v4l2-audio-balance=-1 :no-v4l2-audio-mute :v4l2-audio-bass=-1 :v4l2-audio-treble=-1 :v4l2-audio-loudness=-1 :v4l2-set-ctrls= :file-caching=300
« Letzte Änderung: November 30, 2011, 07:41:24 Nachmittag von Sundtek »
Failure is a good thing! I'll fix it

Sundtek

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 8604
    • Profil anzeigen
Re:Analog TV ins Netzwerk streamen
« Antwort #28 am: Dezember 09, 2011, 04:33:58 Vormittag »
Vor jedem Versuch, dem video device Daten zu entlocken müssen noch das Bildformat und die Kodierung eingestellt werden:
v4l2-ctl --set-fmt-video=width=720,height=576,pixelformat=`v4l2-ctl --list-formats | grep -B3 "MPEG Encoder" | grep Index | awk '{print $3}'`(nimmt den MPEG Encoder)
Laut mrec im Supportforum (in Kombination mit meiner fast 2 Wochen alten Erinnerung) sollte man aber eher das Format YUYV oder so verwenden. Für meine Zwecke arbeitet's aber auch mit dem MPEG Encoder. Die verfügbaren Formate listet v4l2-ctl auf:

~ $ v4l2-ctl --list-formats
ioctl: VIDIOC_ENUM_FMT
Index       : 0
Type        : Video Capture
Pixel Format: 'YUYV'
Name        : Y0-U-Y1-V, 16 bpp
[...]
Ebenso wie Bildformat und Kodierung muss der Sound per 'unmute' "aktiviert" werden:
v4l2-ctl --set-ctrl=mute=0Beide Maßnahmen zusammen führen dazu, dass der weiter oben von mir beschriebene "Datei_bleibt_0_bytes_groß-Fehler" ausbleibt.

Es gibt bei Deiner Konfiguration einen kleinen Fehler, die komplette Konfiguration auf der Konsole würde wie folgt aussehen:

Zitat
v4l2-ctl -d /dev/video1 --set-fmt-video=width=720,height=480,pixelformat=0 -i 0 --set-ctrl=mute=0 -s 4 -f 230

-i 0 ... (input 0, TV Signal)
-s 4 ... (videostandard NTSC-M, 0 wäre PAL-BG)
-f 230 ... 230 MHz
pixelformat=0 ... YUYV Pixelformat [b}9 (nicht MPEG)[/b]
Failure is a good thing! I'll fix it

ChrisPHL

  • Newbie
  • *
  • Beiträge: 10
    • Profil anzeigen
Re:Analog TV ins Netzwerk streamen
« Antwort #29 am: Dezember 20, 2011, 11:16:27 Vormittag »
vlc v4l2:///dev/video0 :input-slave=oss:///dev/dsp0 :v4l2-standard=0 :v4l2-chroma= :v4l2-input=1 :v4l2-audio-input=0 :v4l2-io=0 :v4l2-width=-1 :v4l2-height=-1 :v4l2-aspect-ratio=4\:3 :v4l2-fps=0 :v4l2-caching=300 :no-v4l2-use-libv4l2 :v4l2-tuner=0 :v4l2-tuner-frequency=-1 :v4l2-tuner-audio-mode=0 :no-v4l2-controls-reset :v4l2-brightness=-1 :v4l2-contrast=-1 :v4l2-saturation=-1 :v4l2-hue=-1 :v4l2-black-level=-1 :v4l2-auto-white-balance=-1 :v4l2-do-white-balance=-1 :v4l2-red-balance=-1 :v4l2-blue-balance=-1 :v4l2-gamma=-1 :v4l2-exposure=-1 :v4l2-autogain=-1 :v4l2-gain=-1 :v4l2-hflip=-1 :v4l2-vflip=-1 :v4l2-hcenter=-1 :v4l2-vcenter=-1 :v4l2-audio-volume=-1 :v4l2-audio-balance=-1 :no-v4l2-audio-mute :v4l2-audio-bass=-1 :v4l2-audio-treble=-1 :v4l2-audio-loudness=-1 :v4l2-set-ctrls= :file-caching=300
Das funktioniert leider so noch nicht, obwohl ich auch die im direkt vorhergehenden Beitrag genannten Korrekturen gemacht habe.
Wenn ich den VLC wie gezeigt starte, kommt er nicht dazu mir ein bewegtes Bild mit Ton herbei zu zaubern, stattdessen bekomme ich unzählige Male diese Ausgabe:
[0x856152c] main input debug: Buffering 0%
[0x856152c] main input warning: clock gap, unexpected stream discontinuity
[0x856152c] main input warning: feeding synchro with a new reference point trying to recover from clock gap
Die Option --internalaudio=auto|internal|external verändert diese Tatsachen leider auch nicht. (Allerdings ist nur bei 'internal' Sound an der Soundkarte zu hören.)
Woran liegt das? Was kann ich tun, um dieses Verhalten abzustellen und VLC zum Stream wie folgt zu überreden?
Zitat
# Konfigurieren des Sticks:
/opt/bin/mediaclient -d /dev/video0 -I 0; sleep 1; /opt/bin/mediaclient -m ATV -v NTSC-M -f 66875000 -d /dev/video0; sleep 1; v4l2-ctl --verbose --device /dev/video0 --set-fmt-video=width=480,height=480,pixelformat=0; sleep 1; v4l2-ctl --verbose --device /dev/video0 --set-ctrl=mute=0; /opt/bin/mediaclient --internalaudio=auto; /opt/bin/mediaclient --vfilter=on -d /dev/video0; /opt/bin/mediaclient --mute=off -d /dev/video0
# Starten des Streams:
vlc -I dummy -vvv v4l2:///dev/videoN :input-slave=oss:///dev/dspM :v4l2-standard=0 :v4l2-chroma= :v4l2-input=0 :v4l2-audio-input=0 :v4l2-io=0 :v4l2-width=480 :v4l2-height=480 :v4l2-aspect-ratio=3\:2 :v4l2-fps=0 :v4l2-caching=300 :no-v4l2-use-libv4l2 :v4l2-tuner=0 :v4l2-tuner-frequency=-1 :v4l2-tuner-audio-mode=0 :no-v4l2-controls-reset :v4l2-brightness=-1 :v4l2-contrast=-1 :v4l2-saturation=-1 :v4l2-hue=-1 :v4l2-black-level=-1 :v4l2-auto-white-balance=-1 :v4l2-do-white-balance=-1 :v4l2-red-balance=-1 :v4l2-blue-balance=-1 :v4l2-gamma=-1 :v4l2-exposure=-1 :v4l2-autogain=-1 :v4l2-gain=-1 :v4l2-hflip=-1 :v4l2-vflip=-1 :v4l2-hcenter=-1 :v4l2-vcenter=-1 :v4l2-audio-volume=-1 :v4l2-audio-balance=-1 :no-v4l2-audio-mute :v4l2-audio-bass=-1 :v4l2-audio-treble=-1 :v4l2-audio-loudness=-1 :v4l2-set-ctrls= :file-caching=300 --sout "#transcode{vcodec=mp2v,vb=2000,scale=1,acodec=mpga,ab=192,channels=2,samplerate=44100}:duplicate{dst=rtp{dst=239.0.0.2,port=5004,mux=ts}}"