Autor Thema: Falsche Farben im Analog TV  (Gelesen 5282 mal)

ChristianKG

  • Gast
Falsche Farben im Analog TV
« am: September 27, 2014, 03:23:41 Nachmittag »
Hallo auch,
ich habe den MediaTV Pro III und betreibe ihn an einem (X)Ubuntu 14.04 HTPC.
Ich möchte mir mittels ffmpeg/ffserver das TV-Programm ins Internet streamen. Dazu benutze ich folgendes Script:

#!/bin/bash
default="Pro7"
logmsg="/opt/tv/log/msg.log"
logerr="/opt/tv/log/msg.log"
logffmpeg="/opt/tv/log/ffmpeg.log"
logmplayer="/opt/tv/log/mplayer.log"

function clean_up(){
        killall -9 ffserver mplayer
}
trap clean_up SIGHUP SIGINT SIGTERM

echo "Start" >> $logmsg

timeout() {
    time=$1
    command="/bin/sh -c \"$2\""
    expect -c "set echo \"-noecho\"; set timeout $time; spawn -noecho $command; expect timeout { exit 1 } eof { exit 0 }"
}

stop() {
        echo "Stop streaming..."
        killall -9 mplayer ffserver
        echo -n "Stop mediasrv..."
        timeout 15 "/opt/bin/mediaclient --shutdown 1> $logmsg 2> $logerr"
        if [ $? = 1 ] ; then
                killall -9 mediasrv
                echo "Forced"
                else echo ""
        fi
        sleep 2
        echo "Start mediasrv..."
        /opt/bin/mediaclient --start 1> $logmsg 2> $logerr
        echo "Done"
}

start() {
        echo "Set Channel $default ..."
        tv setchannel $default 1> $logmsg 2> $logerr
        echo "Start mplayer..."
        nohup mplayer -vo null -ao null tv:// -tv driver=v4l2:input=0 1> $logmplayer 2>&1 &
        echo "Start ffserver..."
        ffserver -d 1> $logmsg 2> $logerr &
        sleep 2
        #input format is yuyv422
        echo "Start stream..."
        cat /dev/video0 | ffmpeg -i - http://127.0.0.1:8011/tvstream.ffm 1> $logffmpeg 2>&1 &
        echo "Done"
}


case $1 in
stop)
        stop
        exit 0;;
poweroff)
        poweroff;;
start)
        start;;
restart)
        stop
        sleep 10
        start;;
*)
        tv setchannel $1 1> $logmsg 2> $logerr
esac

"tv setchannel" setzt den Kanal mittels "v4l2-ctl -f xxx.xxx", was auch einwandfrei funktioniert.

Das Problem was ich jetzt habe ist dass das Bild das ankommt falschfarben grün/lila ist. das ist auch der Fall wenn ich es mit "cat /dev/video0 > test.mpg" versuche. Dabei ist es egal ob ich den stream/die Datei mit vlc oder mplayer öffne, das Ergebnis ist immer das selbe. Öffne ich /dev/video0 aber direkt mit mplayer (via mplayer tv:// -tv driver=v4l2:alsa:input=0:channel=SE11) dann stimmen die Farben. Wie aber bekomme ich jetzt hin das es über cat ebenfalls funktioniert? Bin langsam ziemlich ratlos  ???
« Letzte Änderung: September 27, 2014, 03:25:29 Nachmittag von ChristianKG »

Sundtek

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 8512
    • Profil anzeigen
Re:Falsche Farben im Analog TV
« Antwort #1 am: September 27, 2014, 07:27:39 Nachmittag »
Ich denke das Input Format ist UYVY nicht YUV422, wenn man's nicht konfiguriert.

Du verwendest das FFMPEG Plugin oder?


Der Treiber wird in kürze aktualisiert, das FFMPEG Plugin wurde neu integriert (bei den FFMPEG Bibliotheken ändert sich immer wieder mal was).

Das buildffmpeg Skript wurde bereits auf die aktuellste Version aktualisiert (ffmpeg wird nur lokal für den Treiber gebaut nicht für das gesamte System, damit es keine Probleme mit den anderen Programmen geben kann)

http://sundtek.de/support/buildffmpeg.sh

Das Treiberupdate kommt dann in kürze.
« Letzte Änderung: September 27, 2014, 10:06:34 Nachmittag von Sundtek »
Failure is a good thing! I'll fix it

ChristianKG

  • Gast
Re:Falsche Farben im Analog TV
« Antwort #2 am: September 28, 2014, 01:53:44 Vormittag »
Ja ich verwende das Plugin. Habe es jetzt nochmal neu gebaut über euer Script. Jetzt liefert /dev/video0 gar keine Daten mehr. Mit mplayer läuft es nach wie vor. Das Input Format scheint UYVY zu sein:

christian@christian-Point-of-View:~$ mplayer tv:// -tv driver=v4l2:input=0
MPlayer 1.1-4.8 (C) 2000-2012 MPlayer Team

Playing tv://.
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 Pro 2k12
 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; 8 = Secam-B; 9 = Secam-G; 10 = Secam-H;
 inputs: 0 = Television; 1 = Composite; 2 = S-Video;
 Current input: 0
 Current format: UYVY
v4l2: current audio mode is : MONO
tv.c: norm_from_string(pal): Bogus norm parameter, setting default.
v4l2: ioctl query control failed: Invalid argument
==========================================================================
Opening video decoder: [raw] RAW Uncompressed Video
Movie-Aspect is undefined - no prescaling applied.
VO: [vdpau] 640x480 => 640x480 Packed UYVY
Selected video codec: [rawuyvy] vfm: raw (RAW UYVY)
==========================================================================

Es scheint auch irgendwie so als würde das Plugin gar nicht mehr laufen. Tut es das erst wieder nach dem Treiber-Update? Im Prinzip benötige ich es auch gar nicht, das ich den Stream eh neu encode ist das doch nur doppelte Arbeit für die ( ohnehin schwache ) CPU oder?  Und auch wenn ich das plugin verwende müsste ich ja das Input Format eben dort konfigurieren da ja dieses das raw-video abgreift  ???
« Letzte Änderung: September 28, 2014, 01:58:19 Vormittag von ChristianKG »

Sundtek

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 8512
    • Profil anzeigen
Re:Falsche Farben im Analog TV
« Antwort #3 am: September 28, 2014, 02:34:25 Vormittag »
Hast du den Treiber neu installiert und buildffmpeg neu heruntergeladen und ausgeführt? Ich denke da muss noch etwas fein-getuned werden aber im Grunde sollte es eigentlich wieder funktionieren.
Bei FFMPEG haben sich so einige Details geändert.
Failure is a good thing! I'll fix it

ChristianKG

  • Gast
Re:Falsche Farben im Analog TV
« Antwort #4 am: September 28, 2014, 02:47:06 Vormittag »
Treiber habe ich heute morgen neu installiert, ist der vom 18.09.14. Das buildffmpeg script habe ich vorhin neu heruntergeladen und ausgeführt. Lief auch erfolgreich durch, beim vorherigen musste ich --disable-doc an ./configure anhängen damit es durch lief. Das ist nun nicht mehr nötig. Sollte also das aktuelle sein
« Letzte Änderung: September 28, 2014, 02:49:15 Vormittag von ChristianKG »

Sundtek

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 8512
    • Profil anzeigen
Re:Falsche Farben im Analog TV
« Antwort #5 am: September 28, 2014, 09:42:23 Vormittag »
Was zeigt denn bei dir /opt/bin/mediaclient -e an?
Failure is a good thing! I'll fix it

ChristianKG

  • Gast
Re:Falsche Farben im Analog TV
« Antwort #6 am: September 28, 2014, 09:45:55 Vormittag »
root@christian-Point-of-View:~# /opt/bin/mediaclient -e
**** List of Media Hardware Devices ****
device 0: [MediaTV Pro III USB (EU)]  DVB-C, DVB-T, DVB-T2, ANALOG-TV, FM-RADIO, REMOTE-CONTROL, OSS-AUDIO, RDS, SWENCODER
  [INFO]:
     STATUS: ACTIVE
  [BUS]:
     ID: 2-1
  [SERIAL]:
     ID: U140409205711
  [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
  [DVB-T2]:
     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

Edit: Eben nochmal Treiber und Plugin neu installiert, bleibt aber beim alten. /dev/video0 liefert keine Daten während mplayer im Hintergrund abspielt
« Letzte Änderung: September 28, 2014, 11:34:31 Vormittag von ChristianKG »

ChristianKG

  • Gast
Re:Falsche Farben im Analog TV
« Antwort #7 am: Oktober 03, 2014, 09:25:13 Nachmittag »
Habe es jetzt so gelöst das ich mit mencoder in ein fifo aufzeichne und das dann per ffmpeg an ffserver weiterreiche:

mkfifo /tmp/tvstream.fifo 1> $logmsg 2> $logerr
mencoder tv:// -tv driver=v4l2:width=640:height=480:adevice=/dev/dsp0:amode=1 -ovc lavc -oac mp3lame -lameopts cbr:br=128 -lavcopts vcodec=mpeg4:vbitrate=600 -of mpeg -o /tmp/tvstream.fifo > $logmplayer 2>&1 &
ffserver -d 1> $logmsg 2> $logerr &
ffmpeg -i /tmp/tvstream.fifo http://127.0.0.1:8011/tvstream.ffm 1> $logffmpeg 2>&1 &

Also danke für eure Mühe, für mich tuts das so ;)


PS: Allerdings ist es nach wie vor so das mittels cat /dev/video0 > 1234.mpg nur eine leere Datei erzeugt wird, auch mit dem Treiber vom 02.10.