Alternativ zur PATH Variable, kannst du auch in der xmlapi.conf den kompletten Pfad mit angeben.
Also so z.B.:
QuoteFFMPEG=/opt/ffmpeg/bin/ffmpeg
Nach der Änderung VDR natürlich neustarten.
Alternativ zur PATH Variable, kannst du auch in der xmlapi.conf den kompletten Pfad mit angeben.
Also so z.B.:
QuoteFFMPEG=/opt/ffmpeg/bin/ffmpeg
Nach der Änderung VDR natürlich neustarten.
Hi,
der PATH war es
funktioniert jetzt bisher einwandfrei, vielen Dank und !
Das Plugin kann nun auch HLS (HTTP Live Streaming) Streams erzeugen. Ein Segmenter ist dabei direkt im Plugin integriert und die M3U8 und die Segemente werden dabei nicht in Dateien geschrieben sondern direkt in Buffer geschrieben, welche der im Plugin integrierte Webserver bereit stellt. Das ganze hat den Vorteil, dass das Plugin den Zugriff auf die M3U8 überwachen kann und den Stream und somit den Transcodingprozess automatisch beenden kann sobald kein Client mehr darauf zu greift.
So die Android App steht jetzt auch in Grundzügen.
Ist noch nicht sonderlich hübsch aber dafür funktional
Features:
Voraussetzungen:
Was geht noch nicht:
Wo gibts die App:
Derzeit nur als APK und zwar HIER
Wenn die gröbsten Fehler ausgemerzt sind kommt sie auch in den Store
Hier gibts noch paar Screenshots:
Screenshots
Viel Spaß beim testen
Gruß Karl
sehr schön... komme erst morgen zum testen.
wo bleibt iOS
So die Android App steht jetzt auch in Grundzügen.
Ist noch nicht sonderlich hübsch aber dafür funktional
...
Viel Spaß beim testen
Moin,
die Android-App sieht ja echt vielversprechend aus.
Ich scheitere leider schon beim bauen des Plugins. Dürfte daran liegen, dass bei mir bereits ffmpeg 3 zu Einsatz kommt:
cHlsStream.cpp:274:31: warning: ‘void av_free_packet(AVPacket*)’ is deprecated [-Wdeprecated-declarations]
av_free_packet(&packet);
^
In file included from /usr/include/libavformat/avformat.h:318:0,
from cHlsStream.h:25,
from cHlsStream.cpp:15:
/usr/include/libavcodec/avcodec.h:4040:6: note: declared here
void av_free_packet(AVPacket *pkt);
^~~~~~~~~~~~~~
cHlsStream.cpp: In member function ‘AVStream* cHlsStream::add_output_stream(AVFormatContext*, AVStream*)’:
cHlsStream.cpp:382:92: error: ‘CODEC_ID_MP3’ was not declared in this scope
if ((input_codec_context->block_align == 1 && input_codec_context->codec_id == CODEC_ID_MP3) || input_codec_context->codec_id == CODEC_ID_AC3) {
^~~~~~~~~~~~
cHlsStream.cpp:382:142: error: ‘CODEC_ID_AC3’ was not declared in this scope
if ((input_codec_context->block_align == 1 && input_codec_context->codec_id == CODEC_ID_MP3) || input_codec_context->codec_id == CODEC_ID_AC3) {
^~~~~~~~~~~~
make: *** [<builtin>: cHlsStream.o] Error 1
Display More
Peter
Für Arch Linux gibt es auch noch ein ffmpeg2.8 Paket - wie man Software dagegen baut, indem man den PKG_CONFIG_PATH entsprechend übersteuert, kannst du dir z.B. in diesem PKGBUILD für softhddevice von Copperhead ansehen: https://github.com/VDR4Arch/vd…vdr-softhddevice/PKGBUILD
Edit: da muss man beim Makefile des Plugins wohl noch nacharbeiten, damit es sich die Informationen zu den ffmpeg-Bibliotheken per pkgconfig holt...
Edit 2:
diff --git a/Makefile b/Makefile
index 7ce9a93..cc9c344 100644
--- a/Makefile
+++ b/Makefile
@@ -36,6 +36,11 @@ APIVERSION = $(call PKGCFG,apiversion)
-include $(PLGCFG)
+### get ffmpeg libs using pkg-config
+
+CXXFLAGS += $(shell pkg-config --cflags libavcodec libavutil libavformat)
+LIBS += -lmicrohttpd $(shell pkg-config --libs libavcodec libavutil libavformat)
+
### The name of the distribution archive:
ARCHIVE = $(PLUGIN)-$(VERSION)
@@ -112,7 +117,7 @@ install-i18n: $(I18Nmsgs)
### Targets:
$(SOFILE): $(OBJS)
- $(CXX) $(CXXFLAGS) $(LDFLAGS) -shared $(OBJS) -lmicrohttpd -lavformat -lavcodec -lavutil -o $@
+ $(CXX) $(CXXFLAGS) $(LDFLAGS) -shared $(OBJS) $(LIBS) -o $@
install-lib: $(SOFILE)
install -D $^ $(DESTDIR)$(LIBDIR)/$^.$(APIVERSION)
Display More
Dann kann man es so bauen:
Erster Test. Grundsätzlich läuft das. Leider hat mein Fire HDX nur Android 4.4.4, sodass ich auf das Galaxy S4 meines Sohnes ausweichen musste.
Schade, dass es erst ab 5.0 läuft, da das HDX mit Sicherheit kein Update mehr erfahren dürfte.
Ich habe bei meinem VDR das Problem, dass die configs beim Start in /etc/vdr/plugins/xmlapi erstellt werde, das plugin selbst aber danach in /var/lib/vdr/plugins/xmlapi sucht. Rüberkopiert, "Fehler" behoben.
Super finde ich, dass sich User und Admin getrennt administrieren lassen.
Ist es auch möglich, den Stream im lokalen Netz auch ohne Transcoding an das Device weiterzuleiten? Würde etwas CPU-Last sparen.
Probleme habe ich bei (crypted) 1080i Streams. Da will das Ding nur manchmal oder eben gar nicht.
ffmpeg version 2.4.3-1ubuntu1~trusty6 Copyright (c) 2000-2014 the FFmpeg developers
built on Nov 22 2014 17:07:19 with gcc 4.8 (Ubuntu 4.8.2-19ubuntu1)
configuration: --prefix=/usr --extra-version='1ubuntu1~trusty6' --build-suffix=-ffmpeg --toolchain=hardened --extra-cflags= --extra-cxxflags= --libdir=/usr/lib/x86_64-linux-gnu --shlibdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --enable-gpl --enable-shared --disable-stripping --enable-avresample --enable-avisynth --enable-fontconfig --enable-gnutls --enable-ladspa --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libflite --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libmodplug --enable-libmp3lame --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-librtmp --enable-libschroedinger --enable-libshine --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-opengl --enable-x11grab --enable-libxvid --enable-libx265 --enable-libdc1394 --enable-libiec61883 --enable-libzvbi --enable-libzmq --enable-frei0r --enable-libx264 --enable-libsoxr --enable-openal --enable-libopencv
libavutil 54. 7.100 / 54. 7.100
libavcodec 56. 1.100 / 56. 1.100
libavformat 56. 4.101 / 56. 4.101
libavdevice 56. 0.100 / 56. 0.100
libavfilter 5. 1.100 / 5. 1.100
libavresample 2. 1. 0 / 2. 1. 0
libswscale 3. 0.100 / 3. 0.100
libswresample 1. 1.100 / 1. 1.100
libpostproc 53. 0.100 / 53. 0.100
[h264 @ 0x1373da0] non-existing PPS 0 referenced
Last message repeated 1 times
[h264 @ 0x1373da0] decode_slice_header error
[h264 @ 0x1373da0] no frame!
[h264 @ 0x1373da0] non-existing PPS 0 referenced
Last message repeated 1 times
[h264 @ 0x1373da0] decode_slice_header error
[h264 @ 0x1373da0] no frame!
[h264 @ 0x1373da0] non-existing PPS 0 referenced
Display More
Öfftentlich 720p lief. Siehe Bild. Für den ersten Wurf sehr, sehr anständig. Wo kommen die Senderlogos in deinen Screenshots her?
Schriftgröße könnte etwas kleiner oder einstellbar sein
QuoteLeider hat mein Fire HDX nur Android 4.4.4, sodass ich auf das Galaxy S4 meines Sohnes ausweichen musste.
Muss ich mal schauen ob ich es für Android 4.4 downgegrade kriege.
QuoteIst es auch möglich, den Stream im lokalen Netz auch ohne Transcoding an das Device weiterzuleiten? Würde etwas CPU-Last sparen.
Nein
Da Android standardmäßig kein MPEG2 kann wird das schwierig.
Das würde zwar am Server CPU-Last sparen aber auf dem Smartphone die CPU-Last steigern.
QuoteProbleme habe ich bei (crypted) 1080i Streams. Da will das Ding nur manchmal oder eben gar nicht.
Keine Ahnung ob du das mit einem CI-Modul oder irgendwelchen illegalen Plugins betreibst.
Ich hatte die Probleme auch und wie es sich raus stellte, ist das wohl ein Bug in Streamdev
Nach dem Patchen von Streamdev, hatte ich die Probleme nicht mehr.
QuoteWo kommen die Senderlogos in deinen Screenshots her
Die Logos habe ich mir von verschiedenen Stellen zusammengesammelt.
Unter anderem von 3PO
Die müssen dann unter /var/lib/vdr/plugins/xmlapi/logos abgelegt werden.
QuoteSchriftgröße könnte etwas kleiner oder einstellbar sein
Im Emulator sah alles viel kleiner aus
seahawk1986
Danke für den Patch.
Werde ich integrieren
So habe eine neue Version hochgeladen.
Die App sollte jetzt auch mit Android 4.4 funktionieren.
Sonst habe ich nur die Schrift an manchen Stellen verkleinert und diverse Bugs beseitigt die unter Android 4.4 auftraten.
Falls die Streams unter Android 4.4 nicht gehen, liegt das bestimmt daran, dass das Gerät mit dem H264 Main Profile nicht klar kommt.
Dazu die presets.ini bearbeiten und -vprofile main gegen -vprofile baseline tauschen.
Wenn verschlüsselte Sender nicht gehen kann man auch probieren die -analyzeduration in den Presets anzupassen. Also von z.B. von 1M auf 2M oder 3M wechseln.
Moin,
anbei ein patch, damit xmlapi mit ffmpeg3 baut:
diff --git a/cHlsStream.cpp b/cHlsStream.cpp
index d40aa76..a76059b 100644
--- a/cHlsStream.cpp
+++ b/cHlsStream.cpp
@@ -379,7 +379,7 @@ AVStream *cHlsStream::add_output_stream(AVFormatContext *output_format_context,
output_codec_context->sample_rate = input_codec_context->sample_rate;
output_codec_context->channels = input_codec_context->channels;
output_codec_context->frame_size = input_codec_context->frame_size;
- if ((input_codec_context->block_align == 1 && input_codec_context->codec_id == CODEC_ID_MP3) || input_codec_context->codec_id == CODEC_ID_AC3) {
+ if ((input_codec_context->block_align == 1 && input_codec_context->codec_id == AV_CODEC_ID_MP3) || input_codec_context->codec_id == AV_CODEC_ID_AC3) {
output_codec_context->block_align = 0;
}
else {
--
2.9.0
Display More
Erster Eindruck von der Android-App:
Funktioniert auf meinem Nexus 5X gut, sehr schön.
Mein VDR kommt bei der HD-Transkodierung allerdings ziemlich ins schwitzen, ich werde mal über die ffmpeg presets.ini versuchen, nvenc oder intel quicksync zu verwenden (gibts hier ja schon einen thread von jrie oder hannemann dazu).
Peter
Läuft jetzt auch auf dem Fire HDX mit Android 4.4.4! Vielen Dank!
Logos sehe ich noch immer keine, obwohl ich sie in das von Dir benannte Verzeichnis geschmissen hab.
Sieht auch auf dem 7" Tablet sehr anständig aus. Landscape (außer im Playbackmode) ist gar nicht vorgesehen?
Ist etwas umständlich, wenn man das Tablet zur Bedienung immer erst drehen muss. Insbesondere in der Badewanne
Wäre es möglich, die App so konfigurierbar zu machen, dass das Playback nicht sofort startet, wenn man auf einen seiner tippt?
Leider habe ich auch keinerlei Einflussmöglichkeiten, wenn der Stream mal im Landscapemode läuft. Hilft nur, Device drehen.
Derweil experimentiere ich mal mit den presets. Sieht alles schon sehr beachtlich aus.
Tach,
beim Abspielen von bestimmten Aufnahmen bekomme ich einen error. Vermutlich müssen Sonderzeichen im filenamen wie ")" irgendwie escaped bzw. der filename mit quotes umschlossen werden:
Jul 31 16:48:41 vdrone vdr[906]: [1301] xmlapi: request /recstream.ts?filename=/srv/vdr/video/Heiter_bis_toedlich/Hubert_und_Staller_(78)/2016-04-13.18.44.1-0.rec&preset=Nvenc_mid
Jul 31 16:48:41 vdrone vdr[906]: [1301] xmlapi: FFmpeg Cmd=ffmpeg -analyzeduration 1M -i "concat:$(ls -1 /srv/vdr/video/Heiter_bis_toedlich/Hubert_und_Staller_(78)/2016-04-13.18.44.1-0.rec/*.ts | perl -0pe 's/\n/|/g;s/\|$//g')" -f mpegts -c:v nvenc_h264 -bufsize 2000k -maxrate 1200k -g 50 -map 0:v -map a:0 -vf "yadif=0:-1:1, scale=640:360" -preset medium -vprofile main -acodec libmp3lame -ab 96k -ar 44100 -ac 2 -async 1 pipe:1
Jul 31 16:48:42 vdrone vdr[906]: [1301] xmlapi: Stream started
Jul 31 16:48:42 vdrone vdr[906]: sh: command substitution: line 1: syntax error near unexpected token `('
Jul 31 16:48:42 vdrone vdr[906]: sh: command substitution: line 1: `ls -1 /srv/vdr/video/Heiter_bis_toedlich/Hubert_und_Staller_(78)/2016-04-13.18.44.1-0.rec/*.ts | perl -0pe 's/\n/|/g;s/\|$//g')"'
Jul 31 16:48:42 vdrone vdr[906]: [1301] xmlapi: Stream stopped
Transcodieren mit nvenc (wie hier beschrieben) funktioniert auch, damit läuft dann auch HD mit 50% CPU auf meiner Maschine.
Voraussetzung ist ein ffmpeg binary mit nvenc-Unterstützung.
Meine aktueller preset-Eintrag (schraube aber noch dran rum
Logos sehe ich noch immer keine, obwohl ich sie in das von Dir benannte Verzeichnis geschmissen hab.
Geh mal ins Menü "Einstellungen" und dann mit back wieder zurück.
Dann läd die app die channnellist neu, danach waren bei mir die logos da ....
Abend
Quotebeim Abspielen von bestimmten Aufnahmen bekomme ich einen error. Vermutlich müssen Sonderzeichen im filenamen wie ")" irgendwie escaped bzw. der filename mit quotes umschlossen werden:
Jupp da fehlten paar Quotes.
Ist in der aktuellen GIT behoben.
Dein Patch, damits mit ffmpeg3 compiliert, ist auch eingeflossen.
Der Patch von Seahawk1986 auch
Danke für die fixes.
Sieht so aus, als ob du den ffmpeg3 patch 1:1 übernommen hast. Baut es denn dann noch mit ffmpeg 2.x?
Ansonsten habe ich mich mal an einer Versionsprüfung für ffmpeg versucht:
---
cHlsStream.cpp | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/cHlsStream.cpp b/cHlsStream.cpp
index a76059b..75f8f8e 100644
--- a/cHlsStream.cpp
+++ b/cHlsStream.cpp
@@ -15,6 +15,11 @@
#include "cHlsStream.h"
#include "streamControl.h"
+#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(57,24,102)
+ ///
+#define FFMPEG_3
+#endif
+
cHlsStream::cHlsStream(cHlsStreamParameter parameter, map<string, string> conInfo)
: cBaseStream(parameter.FFmpegCmd(), conInfo, true), parameter(parameter),
m3u8(""), streamid(0), last_m3u8_access(0), firstAccess(true) {
@@ -379,7 +384,11 @@ AVStream *cHlsStream::add_output_stream(AVFormatContext *output_format_context,
output_codec_context->sample_rate = input_codec_context->sample_rate;
output_codec_context->channels = input_codec_context->channels;
output_codec_context->frame_size = input_codec_context->frame_sDize;
+#ifdef FFMPEG_3
if ((input_codec_context->block_align == 1 && input_codec_context->codec_id == AV_CODEC_ID_MP3) || input_codec_context->codec_id == AV_CODEC_ID_AC3) {
+#else
+ if ((input_codec_context->block_align == 1 && input_codec_context->codec_id == CODEC_ID_MP3) || input_codec_context->codec_id == CODEC_ID_AC3) {
+#endif
output_codec_context->block_align = 0;
}
else {
--
2.9.0
Display More
Aufnahmen mit Sonderzeichen wie "(" laufen jetzt
QuoteBaut es denn dann noch mit ffmpeg 2.x?
Zumindest mit meiner 2.8.6 gabs keine Probleme.
Müsste ich mal untersuchen, ab welcher Version es Probleme gibt.
Geh mal ins Menü "Einstellungen" und dann mit back wieder zurück.
Dann läd die app die channnellist neu, danach waren bei mir die logos da ....
exakt so war es, danke
Hatte grade einen segfault beim Versuch, 10 min "vorzuspulen". Vielleicht kann man ja anhand des backtraces was erkennen.
Ansonsten ist die app richtig klasse. Livestreaming ist bei mir über mehrere Stunden absolut stabil.
Läuft auf "allen meinen Androiden" (phone, 8 und 10 Zoll Tablet, Android 6.0 / 7.0)
Vielen Dank für die Entwicklung der Android-App, obwohl du sie selbst ja offensichtlich gar nicht brauchst ..
Aug 01 21:30:30 vdrone vdr[501]: [669] xmlapi: Client 192.168.1.193 connecting...
Aug 01 21:30:30 vdrone vdr[501]: [1349] xmlapi: request /recstream.ts?filename=/srv/vdr/video/!arc/Classics/James Bond/%James_Bond_007_-_Die_Welt_ist_nicht_genug/2012-01-14.20.16.1-0.rec
Aug 01 21:30:30 vdrone vdr[501]: [1349] xmlapi: FFmpeg Cmd=ffmpeg -analyzeduration 1M -ss 970 -i "concat:$(ls -1 '/srv/vdr/video/!arc/Classics/James Bond/%James_Bond_007_-_Die_Welt_ist_
Aug 01 21:30:30 vdrone vdr[501]: [1263] xmlapi: Stream stopped
Aug 01 21:30:30 vdrone kernel: libmicrohttpd[1349]: segfault at 34 ip 00007f44eb023e06 sp 00007f441fffe3f8 error 4 in libc-2.23.so[7f44eaedc000+197000]
Aug 01 21:30:30 vdrone systemd[1]: Created slice system-systemd\x2dcoredump.slice.
Aug 01 21:30:30 vdrone systemd[1]: Started Process Core Dump (PID 1350/UID 0).
Aug 01 21:30:33 vdrone systemd[1]: vdr.service: Main process exited, code=killed, status=11/SEGV
Aug 01 21:30:33 vdrone systemd[1]: vdr.service: Unit entered failed state.
Aug 01 21:30:33 vdrone systemd[1]: vdr.service: Failed with result 'signal'.
(gdb) bt
#0 0x00007f44eb023e06 in __memcmp_sse4_1 () from /usr/lib/libc.so.6
#1 0x00007f44d1ba31dd in std::char_traits<char>::compare (__n=<optimized out>, __s2=<optimized out>, __s1=<optimized out>) at /usr/include/c++/6.1.1/bits/char_traits.h:262
#2 std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::compare (__str="ClientIP", this=<optimized out>) at /usr/include/c++/6.1.1/bits/basic_string.h:2408
#3 std::operator< <char, std::char_traits<char>, std::allocator<char> > (__rhs="ClientIP", __lhs=...) at /usr/include/c++/6.1.1/bits/basic_string.h:5138
#4 std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >::operator() (this=<optimized out>, __y="ClientIP", __x=...)
at /usr/include/c++/6.1.1/bits/stl_function.h:387
#5 std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >::_M_lower_bound (this=<optimized out>, __k="ClientIP", __y=0x7f44bc1c77a0, __x=<optimized out>) at /usr/include/c++/6.1.1/bits/stl_tree.h:1624
#6 std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >::lower_bound (__k="ClientIP", this=0x7f44bc1c7798) at /usr/include/c++/6.1.1/bits/stl_tree.h:1098
#7 std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >::lower_bound (__x="ClientIP", this=0x7f44bc1c7798)
at /usr/include/c++/6.1.1/bits/stl_map.h:1150
#8 std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >::operator[](std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&&) (__k=<unknown type in /usr/local/src/VDR/PLUGINS/lib/libvdr-xmlapi.so.2.2.0, CU 0xea5c9, DIE 0xf2d09>, this=0x7f44bc1c7798) at /usr/include/c++/6.1.1/bits/stl_map.h:499
#9 cBaseStream::GetClientIP[abi:cxx11]() (this=0x7f44bc1c7770) at cBaseStream.cpp:35
#10 0x00007f44d1b8b31a in cStreamControl::WaitingForStreamsByUserAgentAndIP (this=0x56286d7b5b20, ip="192.168.1.193", useragent="org.s51.vdrclient") at cStreamControl.cpp:137
#11 0x00007f44d1b93d40 in cRequestHandler::handleRecStream (this=this@entry=0x7f44400043f0, url=url@entry=0x7f4434068364 "/recstream.ts") at cRequestHandler.cpp:247
#12 0x00007f44d1ba0893 in cRequestHandler::HandleRequest (this=this@entry=0x7f44400043f0, url=<optimized out>, url@entry=0x7f4434068364 "/recstream.ts") at cRequestHandler.cpp:89
#13 0x00007f44d1b88f12 in cWebServer::handle_connection (cls=<optimized out>, connection=0x7f44340a8780, url=0x7f4434068364 "/recstream.ts", method=<optimized out>,
version=<optimized out>, upload_data=<optimized out>, upload_data_size=0x7f441fffebf0, con_cls=0x7f44340a87d8) at cWebServer.cpp:140
#14 0x00007f44d1961744 in ?? () from /usr/lib/libmicrohttpd.so.12
#15 0x00007f44d1962d04 in ?? () from /usr/lib/libmicrohttpd.so.12
#16 0x00007f44d1963dd5 in ?? () from /usr/lib/libmicrohttpd.so.12
#17 0x00007f44d1966973 in ?? () from /usr/lib/libmicrohttpd.so.12
#18 0x00007f44ec635484 in start_thread () from /usr/lib/libpthread.so.0
#19 0x00007f44eafc36dd in clone () from /usr/lib/libc.so.6
Display More
Peter
Don’t have an account yet? Register yourself now and be a part of our community!