DVD in Neutrino-Format TS konventieren

Benutzeravatar
BPanther
Administrator
Administrator
Beiträge: 13758
Registriert: Do 11. Jan 2007, 00:06
Wohnort: Berlin
Hat sich bedankt: 722 Mal
Danksagung erhalten: 1931 Mal
Kontaktdaten:

Re: DVD in Neutrino-Format TS konventieren

#16

Beitrag von BPanther »

@mohousch: Danke für die Info. :drinking:

@dbox-all: Kommt in der nächsten Version mit rein, läuft bei mir derzeit schon als Test. Also immer mit der Ruhe... ;)
MfG BPanther
KEIN SUPPORT PER PN -> Bitte das Forum nutzen und das Wiki lesen.


Bild Bild
Thx udog für das Bild.
TV: Sony Bravia KDL-46HX755
Boxen mit NMP und Unicable2 (Jess):
SH4: 7x UFS910 (1W, 128MB), 1x UFS910 (14W, 64MB), 1x UFS912, 2x UFS913, 1x AV700, 1x AV7000, 1x AV7500 (DVB-S/C/T), 1x Edision Argus Pingulux, 1x Vizyon820HD
MIPS: 1x VU+DUO, 1x VU+DUO2, 1x DM7020, 1x DM8000, 1x DM820, 1x DM7080
ARM: 3x AX 4K HD51 (DVB-S/SX/C/T/T2), 1x VU+Solo4K (DVB-S/SX (FBC)/C/T/T2 (DUAL)), 1x VU+Duo4K (DVB-S/SX (FBC)/C (FBC)), 3x E4HD 4K Ultra (DVB-S/SX/C/T/T2)
ARM: 1x VU+Duo4KSE (DVB-S/SX (FBC)/C (FBC)), 1x VU+Ultimo4K (DVB-S/SX (FBC)/C (DUAL)), 1x VU+Uno4KSE (DVB-S/SX (FBC)/C (FBC)), 2x VU+Zero4K (DVB-S/SX)
ARM: 1x DM900 (DVB-S/SX (FBC)/S/C/T/T2 (Tripple)), 1x DM920 (DVB-S/SX (FBC)/S/C/T/T2 (Tripple))
Benutzeravatar
dbox-all
Moderator
Moderator
Beiträge: 2639
Registriert: Mo 4. Jul 2011, 21:15
Wohnort: HSK
Hat sich bedankt: 252 Mal
Danksagung erhalten: 113 Mal

Re: DVD in Neutrino-Format TS konventieren

#17

Beitrag von dbox-all »

BPanther hat geschrieben:@mohousch: Danke für die Info. :drinking:

@dbox-all: Kommt in der nächsten Version mit rein, läuft bei mir derzeit schon als Test. Also immer mit der Ruhe... ;)
Danke Euch beiden !!! :applaus:
Zitat :
Changelog (rev1082->rev4499)

- (rev4499) "TS-Movieplayer" spielt auch andere Formate ab (thx mohousch)
mfg
mfg

--------------------------------------------------------------
|39.0E-28.2E-23,5E-19.2E-16.0E-13.0E-9.0E-4.9E-0.8W|
|-- 2x UFS910 -3x UFS912 -3x UFS913 -2x AX HD51 --|
--------------------------------------------------------------
Bild
Benutzeravatar
TangoCash
Moderator
Moderator
Beiträge: 997
Registriert: Di 19. Jul 2011, 22:13
Hat sich bedankt: 27 Mal
Danksagung erhalten: 154 Mal

Re: DVD in Neutrino-Format TS konventieren

#18

Beitrag von TangoCash »

das funzt eigentlich ganz gut - hab einen solchen patch auch schon länger drin.

(auch die screenshot geschichte funktioniert - man muss nur noch die vcrcontrol.cpp passend umbauen und nen trigger auf ne Taste legen)
Es gibt genau 10 Sorten von Leuten – nämlich diejenigen, die das binäre System verstehen, und diejenigen, die es nicht tun.

2B || !2B

5x Mutant HD51
1x VU+ Ultimo 4k
1x Edision Mio+ 4k
1x Mutant HD60
Benutzeravatar
BPanther-Mobil
Registrierte Benutzer
Registrierte Benutzer
Beiträge: 589
Registriert: Di 2. Aug 2011, 08:27
Hat sich bedankt: 3 Mal
Danksagung erhalten: 49 Mal

Re: DVD in Neutrino-Format TS konventieren

#19

Beitrag von BPanther-Mobil »

Du meinst sicher daß mit dem Screenshot, auch das geht bei mir mit der Aufnahmetaste. Die Funktion kannte ja Neutrino, war nur inaktiv. Allerdings habe ich was geändert, weil ffmpeg so wie die Zeile z.B. auch bei mohousch drin ist, viel zu langsam ist, bzw. zu lange braucht bis der erstellt ist. Auch wird er von der aktuellen Position gemacht, nicht fest vorgegeben. Befindet sich aber noch im Test derzeit, also noch nicht komplett in der 4499 eingebaut.
MfG BPanther
KEIN SUPPORT PER PN -> Bitte das Forum nutzen und das Wiki lesen.


Bild Bild
Tnx udog für das Bild.
TV: Sony Bravia KDL-46HX755
Boxen mit NMP und Unicable2 (Jess):
SH4: 7x UFS910 (1W, 128MB), 1x UFS910 (14W, 64MB), 1x UFS912, 2x UFS913, 1x AV700, 1x AV7000, 1x AV7500 (DVB-S/C/T), 1x Edision Argus Pingulux, 1x Vizyon820HD
MIPS: 1x VU+DUO, 1x DM8000
ARM: 3x AX 4K HD51 (DVB-S/SX/C/T/T2), 1x VU+Solo4K (DVB-S/SX (FBC)/C/T/T2 (DUAL)), 1x VU+Duo4K (DVB-S/SX (FBC)/C (FBC)),
ARM: 1x VU+Duo4KSE (DVB-S/SX (FBC)/C (FBC)), 1x VU+Ultimo4K (DVB-S/SX (FBC)/C (DUAL)), 1x VU+Uno4KSE (DVB-S/SX (FBC)/C (FBC)), 2x VU+Zero4K (DVB-S/SX)
Benutzeravatar
BPanther
Administrator
Administrator
Beiträge: 13758
Registriert: Do 11. Jan 2007, 00:06
Wohnort: Berlin
Hat sich bedankt: 722 Mal
Danksagung erhalten: 1931 Mal
Kontaktdaten:

Re: DVD in Neutrino-Format TS konventieren

#20

Beitrag von BPanther »

Nachdem ich wieder zuhause bin, konnte ich das mal raussuchen, Beispiel vom Neutrino von mohousch:

https://code.google.com/p/neutrinohd2/s ... ol.cpp#922

Dort heißt es ja in der Zeile 922:

Code: Alles auswählen

sprintf(cmd, "ffmpeg -y -i %s -y -f image2 -ss %d -vframes 1 -s 320*240 %s", fname, spos, (char *)file_name.c_str());
Damit gibt es mehrere Probleme.
1. Screenshots brauchen recht lange (HD keine Ahnung, habe nach 10 min. abgebrochen).
2. Bestimmte "Sonderzeichen" (z.B. Klammern) machen Probleme, Screenshots werden nicht erstellt.
3. Desweiteren gibts noch ein Memleak (hintbox, durch Zeilen 935/936), wenn der Screenshot nicht erstellt werden kann (z.B. Fehler bei ffmpeg).

Problemlösungen:
1. Die Parameter etwas umstellen. Die Zeile sollte wie folgt lauten, dann geht der Screenshot weitaus schneller:

Code: Alles auswählen

sprintf(cmd, "ffmpeg -ss %d -y -i \"%s\" -y -f image2 -vframes 1 -s 320*240 \"%s\"", spos, fname, (char *)file_name.c_str());
2. Ebenfalls in der Zeile bei 1. enthalten, einfach in der Zeile %s mit \"%s\" schreiben, dann klappts auch.
3. Erst die hintBox beenden (hide) und löschen (delete), dann erst mit Fehler abbrechen.
MfG BPanther
KEIN SUPPORT PER PN -> Bitte das Forum nutzen und das Wiki lesen.


Bild Bild
Thx udog für das Bild.
TV: Sony Bravia KDL-46HX755
Boxen mit NMP und Unicable2 (Jess):
SH4: 7x UFS910 (1W, 128MB), 1x UFS910 (14W, 64MB), 1x UFS912, 2x UFS913, 1x AV700, 1x AV7000, 1x AV7500 (DVB-S/C/T), 1x Edision Argus Pingulux, 1x Vizyon820HD
MIPS: 1x VU+DUO, 1x VU+DUO2, 1x DM7020, 1x DM8000, 1x DM820, 1x DM7080
ARM: 3x AX 4K HD51 (DVB-S/SX/C/T/T2), 1x VU+Solo4K (DVB-S/SX (FBC)/C/T/T2 (DUAL)), 1x VU+Duo4K (DVB-S/SX (FBC)/C (FBC)), 3x E4HD 4K Ultra (DVB-S/SX/C/T/T2)
ARM: 1x VU+Duo4KSE (DVB-S/SX (FBC)/C (FBC)), 1x VU+Ultimo4K (DVB-S/SX (FBC)/C (DUAL)), 1x VU+Uno4KSE (DVB-S/SX (FBC)/C (FBC)), 2x VU+Zero4K (DVB-S/SX)
ARM: 1x DM900 (DVB-S/SX (FBC)/S/C/T/T2 (Tripple)), 1x DM920 (DVB-S/SX (FBC)/S/C/T/T2 (Tripple))
Benutzeravatar
TangoCash
Moderator
Moderator
Beiträge: 997
Registriert: Di 19. Jul 2011, 22:13
Hat sich bedankt: 27 Mal
Danksagung erhalten: 154 Mal

Re: DVD in Neutrino-Format TS konventieren

#21

Beitrag von TangoCash »

Ich habs so:

in der vcrcontrol.cpp:

Code: Alles auswählen

bool CVCRControl::Screenshot(const t_channel_id channel_id, char * fname, int spos)
{
	char filename[512]; // UTF-8
	char cmd[512];
	std::string channel_name;
	CEPGData                epgData;
	event_id_t epgid = 0;
	unsigned int pos;

	if(!fname) // live stream
	{
		char str[256];

		struct statfs s;

		if (::statfs(g_settings.network_nfs_picturedir, &s) != 0)
		{
          return false;
		}

		sprintf(str, "%s/", g_settings.network_nfs_picturedir );


		strcpy(filename, str);

		pos = strlen(filename);
		channel_name = g_Zapit->getChannelName(channel_id);

		if (!(channel_name.empty()))
		{
			strcpy(&(filename[pos]), UTF8_TO_FILESYSTEM_ENCODING(channel_name.c_str()));
			char * p_act = &(filename[pos]);

			do {
				p_act += strcspn(p_act, "/ \"%&-\t`'�!,:;");
				if (*p_act) {
					*p_act++ = '_';
				}
			} while (*p_act);
			strcat(filename, "_");
		}

		pos = strlen(filename);

		if(sectionsd_getActualEPGServiceKey(channel_id&0xFFFFFFFFFFFFULL, &epgData));
			epgid = epgData.eventID;

		if(epgid != 0)
		{
			CShortEPGData epgdata;
			if(sectionsd_getEPGidShort(epgid, &epgdata))
			{
				if (!(epgdata.title.empty()))
				{
					strcpy(&(filename[pos]), epgdata.title.c_str());
					char * p_act = &(filename[pos]);
					do {
						p_act +=  strcspn(p_act, "/ \"%&-\t`'~<>!,:;?^�$\\=*#@�|");
						if (*p_act) {
							*p_act++ = '_';
						}
					} while (*p_act);
				}
			}
		}

		pos = strlen(filename);
		time_t t = time(NULL);
		strftime(&(filename[pos]), sizeof(filename) - pos - 1, "%Y%m%d_%H%M%S", localtime(&t));

		strcat(filename, ".jpg");

#ifdef __sh__
		snprintf(cmd,sizeof(cmd), "ffmpeg -itsoffset -4 -i `wget -q -O - http://127.0.0.1/control/build_live_url --post-data vlc_link=true` -y -f image2 -sn -an -vframes 1 -s 320*240 '%s'", filename);
#else
		sprintf(cmd, "grab -v %s", filename);
#endif
	}
	else
	{
		//from tsbrowser(MP)
		strcpy(filename, fname);

		std::string file_name = fname; // UTF-8

		int ext_pos = 0;
		ext_pos = file_name.rfind('.');
		if( ext_pos > 0)
		{
			std::string extension;
			extension = file_name.substr(ext_pos + 1, file_name.length() - ext_pos);
			extension = "." + extension;
			strReplace(file_name, extension.c_str(), ".jpg");
		}
#ifdef __sh__
		snprintf(cmd,sizeof(cmd),"ffmpeg -i '%s' 2>&1 | grep 'Duration' | cut -d ' ' -f 4 | sed s/,// | cut -d ':' -f2",fname);
		FILE * f;
		int n;
		f=popen(cmd, "r");
		char buf[256];
        while (fgets(buf, 255, f) != NULL)
        {
        n = int(buf);
        printf("%s converted to %d\n", buf, n);
        }
        pclose(f);
        if (n > 3)
		snprintf(cmd,sizeof(cmd), "ffmpeg -ss 00:%d:00 -y -i '%s' -y -f image2 -vframes 1 -s 640*360 '%s' 2>&1", spos, fname, (char *)file_name.c_str());
		else return false;
#else
		sprintf(cmd, "grab -v %s", (char *)file_name.c_str());
#endif
	}

	printf("Executing %s\n", cmd);

	CHintBox * hintBox = new CHintBox(LOCALE_MESSAGEBOX_INFO, "Screenshot...." );

	hintBox->paint();

	if(system(cmd)){
	        hintBox->hide();
	        delete hintBox;
		return false;
        }

	hintBox->hide();
	delete hintBox;

	return true;
}
in der vcrcontrol.h:

Code: Alles auswählen

bool Screenshot(const t_channel_id channel_id, char * fname = NULL, int spos = 1);
(Screenshot nach 1 min Film, wenn nicht anders angeben)


in der moviebrowser.cpp - bool CMovieBrowser::onButtonPressMainFrame(neutrino_msg_t msg):

Code: Alles auswählen

    else if (msg == CRCInput::RC_record)
    {
        std::string fname = m_movieSelectionHandler->file.Name;
        std::string fname2 = fname;
        int ext_pos = 0;
        ext_pos = fname.rfind('.');
        if( ext_pos > 0)
        {
            std::string extension;
            extension = fname.substr(ext_pos + 1, fname.length() - ext_pos);
            extension = "." + extension;
            strReplace(fname2, extension.c_str(), ".jpg");
        }
        if (access(fname2.c_str(), F_OK) != 0)
        {
            printf("Taking screenshot from %s\n named: %s\n",fname.c_str(),fname2.c_str());
            bool retcode = CVCRControl::getInstance()->Screenshot(0, (char *)fname.c_str());
            if (retcode) refresh();
        }
        else
        {
            if (ShowLocalizedMessage(LOCALE_MESSAGEBOX_INFO, LOCALE_MOVIEBROWSER_DEL_SS,CMessageBox::mbrYes, CMessageBox::mbYes | CMessageBox::mbNo, NULL, 450, 30, false) == CMessageBox::mbrYes)
                remove(fname2.c_str());
            refresh();
        }
    }
(LOCALE noch einbauen)

Kann bei HD ein bischen dauern - die blöde Denkpause ;)
Es gibt genau 10 Sorten von Leuten – nämlich diejenigen, die das binäre System verstehen, und diejenigen, die es nicht tun.

2B || !2B

5x Mutant HD51
1x VU+ Ultimo 4k
1x Edision Mio+ 4k
1x Mutant HD60
Benutzeravatar
BPanther
Administrator
Administrator
Beiträge: 13758
Registriert: Do 11. Jan 2007, 00:06
Wohnort: Berlin
Hat sich bedankt: 722 Mal
Danksagung erhalten: 1931 Mal
Kontaktdaten:

Re: DVD in Neutrino-Format TS konventieren

#22

Beitrag von BPanther »

Hmm, warum nimmst Du nicht die vorhandene Funktion getPosition (durch 1000 geteilt)? Das sind dann Sekunden, daher nur %d statt der Uhrzeit, und es braucht kein system() mit grep/cut etc. und einem dritten ffmpeg-Aufruf.
MfG BPanther
KEIN SUPPORT PER PN -> Bitte das Forum nutzen und das Wiki lesen.


Bild Bild
Thx udog für das Bild.
TV: Sony Bravia KDL-46HX755
Boxen mit NMP und Unicable2 (Jess):
SH4: 7x UFS910 (1W, 128MB), 1x UFS910 (14W, 64MB), 1x UFS912, 2x UFS913, 1x AV700, 1x AV7000, 1x AV7500 (DVB-S/C/T), 1x Edision Argus Pingulux, 1x Vizyon820HD
MIPS: 1x VU+DUO, 1x VU+DUO2, 1x DM7020, 1x DM8000, 1x DM820, 1x DM7080
ARM: 3x AX 4K HD51 (DVB-S/SX/C/T/T2), 1x VU+Solo4K (DVB-S/SX (FBC)/C/T/T2 (DUAL)), 1x VU+Duo4K (DVB-S/SX (FBC)/C (FBC)), 3x E4HD 4K Ultra (DVB-S/SX/C/T/T2)
ARM: 1x VU+Duo4KSE (DVB-S/SX (FBC)/C (FBC)), 1x VU+Ultimo4K (DVB-S/SX (FBC)/C (DUAL)), 1x VU+Uno4KSE (DVB-S/SX (FBC)/C (FBC)), 2x VU+Zero4K (DVB-S/SX)
ARM: 1x DM900 (DVB-S/SX (FBC)/S/C/T/T2 (Tripple)), 1x DM920 (DVB-S/SX (FBC)/S/C/T/T2 (Tripple))
Benutzeravatar
mohousch
Registrierte Benutzer
Registrierte Benutzer
Beiträge: 1111
Registriert: Di 18. Sep 2012, 20:21
Hat sich bedankt: 41 Mal
Danksagung erhalten: 165 Mal

Re: DVD in Neutrino-Format TS konventieren

#23

Beitrag von mohousch »

Coolstream haben auch daran gearbeitet, erneut, screnshot.cpp Dateien da sind die ganzen Funktionen für OSD Screenshots, die Video Screenshots (Code vermutlich vom vgrab genommen) ist leider in das np libcoolstream verpackt, und paar GUI Optionen Setup dazu gemacht das man z.B so einstellen kann wenn eine Aufnahme startet dazu automatisch einen Video Screenshot genommen wird etc...in der Moviebrowser is nicht viel geändert worden ausser die Screenshot Funktion extra geschnitten ist.
Benutzeravatar
TangoCash
Moderator
Moderator
Beiträge: 997
Registriert: Di 19. Jul 2011, 22:13
Hat sich bedankt: 27 Mal
Danksagung erhalten: 154 Mal

Re: DVD in Neutrino-Format TS konventieren

#24

Beitrag von TangoCash »

BPanther hat geschrieben:und es braucht kein system() mit grep/cut etc. und einem dritten ffmpeg-Aufruf.
ich hatte den nur drin um die länge gegen die screenshot position zu validieren..was nützt mir ein screenshot bei min 60 wenn die aufnahme nur 30 min lang ist ;)

hab dann dort aber die entwicklung erstmal eingestellt, da ich im moment mit meinen ts player am rumhändeln bin - aber in den letzten paar tagen nicht viel zeit zum entwickeln hatte..


osd screenshot ist ja eigentlich ganz easy...

brauchst ja nur den fb in ein png zu packen....(siehe code schnipsel)
Es gibt genau 10 Sorten von Leuten – nämlich diejenigen, die das binäre System verstehen, und diejenigen, die es nicht tun.

2B || !2B

5x Mutant HD51
1x VU+ Ultimo 4k
1x Edision Mio+ 4k
1x Mutant HD60
Benutzeravatar
BPanther-Mobil
Registrierte Benutzer
Registrierte Benutzer
Beiträge: 589
Registriert: Di 2. Aug 2011, 08:27
Hat sich bedankt: 3 Mal
Danksagung erhalten: 49 Mal

Re: DVD in Neutrino-Format TS konventieren

#25

Beitrag von BPanther-Mobil »

Eben deswegen lasse ich den einfach von der aktuellen Position machen. ;)
MfG BPanther
KEIN SUPPORT PER PN -> Bitte das Forum nutzen und das Wiki lesen.


Bild Bild
Tnx udog für das Bild.
TV: Sony Bravia KDL-46HX755
Boxen mit NMP und Unicable2 (Jess):
SH4: 7x UFS910 (1W, 128MB), 1x UFS910 (14W, 64MB), 1x UFS912, 2x UFS913, 1x AV700, 1x AV7000, 1x AV7500 (DVB-S/C/T), 1x Edision Argus Pingulux, 1x Vizyon820HD
MIPS: 1x VU+DUO, 1x DM8000
ARM: 3x AX 4K HD51 (DVB-S/SX/C/T/T2), 1x VU+Solo4K (DVB-S/SX (FBC)/C/T/T2 (DUAL)), 1x VU+Duo4K (DVB-S/SX (FBC)/C (FBC)),
ARM: 1x VU+Duo4KSE (DVB-S/SX (FBC)/C (FBC)), 1x VU+Ultimo4K (DVB-S/SX (FBC)/C (DUAL)), 1x VU+Uno4KSE (DVB-S/SX (FBC)/C (FBC)), 2x VU+Zero4K (DVB-S/SX)
Antworten

Zurück zu „Allgemeines/Anleitungen/FAQ“