Softhddevice mit ffmpeg-3.x ?
-
-
Wozu?? Mit Deiner Hardware ist doch so der so kein HEVC möglich.
-
rofafor: would it be possible to include also the openglosd into your softhddevice-git?
Someone should port the openglosd for VAAPI first. There's no point adding VDPAU-only features into VAAPI branches. -
Der "vpp_support_hevc" Branch wurde wohl gelöscht?
-
Ja, aber erst nachdem er in den vpp_support branch gemerged wurde: https://github.com/pesintta/vdr-plugin-softhddevice/pull/18
-
Und was soll denn nun für HEVC verwendet werden?
-
Der vpp_support-Branch von https://github.com/pesintta/vdr-plugin-softhddevice sollte jetzt alles nötige enthalten.
-
Nun, mit dem master Branch von rofafor funktioniert bei mir DVB-T2 auch einwandfrei.
Ehrlich gesagt, weiß ich nun nicht, wo denn nun genau die Unterschiede zwischen den einzelnen Repos sind?
Trotz dessen, dass sie so toll dokumentiert sind.
-
Nun, mit dem master Branch von rofafor funktioniert bei mir DVB-T2 auch einwandfrei.
Bei seinem vpp_support Branch (das ist der default branch) würde ich es verstehen, denn der ist auf dem gleichen Stand wie der von pesintta, aber dass der master branch von 2015 das kann würde ich ehrlich gesagt bezweifeln.
-
-
Ich habe auch gerade mal den Versuch gestartet und mich an ffmpeg3 (aktuelle Git)
Ich laufe hier noch auf SuSe 13.2 mit selbstgebackenem Kernel
Linux Tydirium 3.16.7-VDR0417 #1 SMP PREEMPT Tue Apr 11 10:47:19 CEST 2017 x86_64 x86_64 x86_64 GNU/LinuxAlles natürlich mit clean ganz sauber neu kompiliert. Jedoch bringt mir der VDR Make folgenden Fehler beim Plugin:
Ich nehme mal an das hat was mit den uint Meldungen zu tun, richtig ? Irgendwelche Tips ?
*** Plugin softhddevice:
cc -g -O3 -Wall -fPIC -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -I/usr/src/vdr-2.2.0/include -I/usr/include/alsa -DPLUGIN_NAME_I18N='"softhddevice"' -D_GNU_SOURCE -DAV_INFO -DAV_INFO_TIME=3000 -DUSE_PIP -DHAVE_PTHREAD_NAME -DUSE_MPEG_COMPLETE -DH264_EOS_TRICKSPEED -DUSE_VDR_SPU -DUSE_ALSA -DUSE_OSS -DUSE_VDPAU -DUSE_VAAPI -DUSE_SCREENSAVER -DUSE_SWSCALE -DUSE_SWRESAMPLE -DGIT_REV='"ec5cb4d"' -I/usr/src/vdr-2.2.0/include -g -W -Wall -Wextra -Winit-self -Wdeclaration-after-statement -c -o video.o video.c
cc -g -O3 -Wall -fPIC -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -I/usr/src/vdr-2.2.0/include -I/usr/include/alsa -DPLUGIN_NAME_I18N='"softhddevice"' -D_GNU_SOURCE -DAV_INFO -DAV_INFO_TIME=3000 -DUSE_PIP -DHAVE_PTHREAD_NAME -DUSE_MPEG_COMPLETE -DH264_EOS_TRICKSPEED -DUSE_VDR_SPU -DUSE_ALSA -DUSE_OSS -DUSE_VDPAU -DUSE_VAAPI -DUSE_SCREENSAVER -DUSE_SWSCALE -DUSE_SWRESAMPLE -DGIT_REV='"ec5cb4d"' -I/usr/src/vdr-2.2.0/include -g -W -Wall -Wextra -Winit-self -Wdeclaration-after-statement -c -o audio.o audio.c
video.c: In function ‘VideoSetPts’:
video.c:588:5: warning: ‘pkt_pts’ is deprecated (declared at /usr/include/libavutil/frame.h:285) [-Wdeprecated-declarations]
pts = frame->pkt_pts;
^
video.c: At top level:
video.c:1716:12: warning: ‘vaapi_context’ is deprecated (declared at /usr/include/libavcodec/vaapi.h:56) [-Wdeprecated-declarations]
struct vaapi_context VaapiContext[1]; ///< ffmpeg VA-API context
^
video.c: In function ‘VaapiSetup’:
video.c:3570:14: warning: unused variable ‘status’ [-Wunused-variable]
VAStatus status;
^
video.c: In function ‘VaapiSetupParameterBufferProcessing’:
video.c:3684:17: error: ‘VAProcFilterSkinToneEnhancement’ undeclared (first use in this function)
if (type == VAProcFilterSkinToneEnhancement && cap_n == 0) { // Intel driver doesn't return caps
^
video.c:3684:17: note: each undeclared identifier is reported only once for each function it appears in
video.c: In function ‘VaapiSetupVideoProcessing’:
video.c:3935:11: error: ‘VAProcFilterSkinToneEnhancement’ undeclared (first use in this function)
case VAProcFilterSkinToneEnhancement:
^
video.c: In function ‘Vaapi_get_format’:
video.c:4170:20: error: ‘VAProfileHEVCMain10’ undeclared (first use in this function)
VAProfileHEVCMain10);
^
video.c:4173:24: error: ‘VAProfileHEVCMain’ undeclared (first use in this function)
VAProfileHEVCMain);
^
video.c: In function ‘VaapiRenderFrame’:
video.c:6110:6: warning: ‘data’ is deprecated (declared at /usr/include/libavcodec/avcodec.h:3975) [-Wdeprecated-declarations]
picture->data[0] = va_image_data + decoder->Image->offsets[0];
^
video.c:6111:6: warning: ‘linesize’ is deprecated (declared at /usr/include/libavcodec/avcodec.h:3977) [-Wdeprecated-declarations]
picture->linesize[0] = decoder->Image->pitches[0];
^
video.c:6112:6: warning: ‘data’ is deprecated (declared at /usr/include/libavcodec/avcodec.h:3975) [-Wdeprecated-declarations]
picture->data[1] = va_image_data + decoder->Image->offsets[1];
^
video.c:6113:6: warning: ‘linesize’ is deprecated (declared at /usr/include/libavcodec/avcodec.h:3977) [-Wdeprecated-declarations]
picture->linesize[1] = decoder->Image->pitches[2];
^
video.c:6114:6: warning: ‘data’ is deprecated (declared at /usr/include/libavcodec/avcodec.h:3975) [-Wdeprecated-declarations]
picture->data[2] = va_image_data + decoder->Image->offsets[2];
^
video.c:6115:6: warning: ‘linesize’ is deprecated (declared at /usr/include/libavcodec/avcodec.h:3977) [-Wdeprecated-declarations]
picture->linesize[2] = decoder->Image->pitches[1];
^
video.c:6117:6: warning: ‘av_picture_copy’ is deprecated (declared at /usr/include/libavcodec/avcodec.h:5565) [-Wdeprecated-declarations]
av_picture_copy(picture, (AVPicture *) frame, video_ctx->pix_fmt,
^
video.c:6120:6: warning: ‘data’ is deprecated (declared at /usr/include/libavcodec/avcodec.h:3975) [-Wdeprecated-declarations]
picture->data[0] = va_image_data + decoder->Image->offsets[0];
^
video.c:6121:6: warning: ‘linesize’ is deprecated (declared at /usr/include/libavcodec/avcodec.h:3977) [-Wdeprecated-declarations]
picture->linesize[0] = decoder->Image->pitches[0];
^
video.c:6122:6: warning: ‘data’ is deprecated (declared at /usr/include/libavcodec/avcodec.h:3975) [-Wdeprecated-declarations]
picture->data[1] = va_image_data + decoder->Image->offsets[2];
^
video.c:6123:6: warning: ‘linesize’ is deprecated (declared at /usr/include/libavcodec/avcodec.h:3977) [-Wdeprecated-declarations]
picture->linesize[1] = decoder->Image->pitches[2];
^
video.c:6124:6: warning: ‘data’ is deprecated (declared at /usr/include/libavcodec/avcodec.h:3975) [-Wdeprecated-declarations]
picture->data[2] = va_image_data + decoder->Image->offsets[1];
^
video.c:6125:6: warning: ‘linesize’ is deprecated (declared at /usr/include/libavcodec/avcodec.h:3977) [-Wdeprecated-declarations]
picture->linesize[2] = decoder->Image->pitches[1];
^
video.c:6127:6: warning: ‘av_picture_copy’ is deprecated (declared at /usr/include/libavcodec/avcodec.h:5565) [-Wdeprecated-declarations]
av_picture_copy(picture, (AVPicture *) frame, video_ctx->pix_fmt,
^
video.c: In function ‘vdpau_get_buffer’:
video.c:8803:68: warning: unused parameter ‘flags’ [-Wunused-parameter]
static int vdpau_get_buffer(AVCodecContext *s, AVFrame *frame, int flags)
^
video.c: In function ‘Vdpau_get_format’:
video.c:9039:21: error: ‘VDP_DECODER_PROFILE_HEVC_MAIN_10’ undeclared (first use in this function)
VDP_DECODER_PROFILE_HEVC_MAIN_10);
^
cc -g -O3 -Wall -fPIC -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -I/usr/src/vdr-2.2.0/include -I/usr/include/alsa -DPLUGIN_NAME_I18N='"softhddevice"' -D_GNU_SOURCE -DAV_INFO -DAV_INFO_TIME=3000 -DUSE_PIP -DHAVE_PTHREAD_NAME -DUSE_MPEG_COMPLETE -DH264_EOS_TRICKSPEED -DUSE_VDR_SPU -DUSE_ALSA -DUSE_OSS -DUSE_VDPAU -DUSE_VAAPI -DUSE_SCREENSAVER -DUSE_SWSCALE -DUSE_SWRESAMPLE -DGIT_REV='"ec5cb4d"' -I/usr/src/vdr-2.2.0/include -g -W -Wall -Wextra -Winit-self -Wdeclaration-after-statement -c -o codec.o codec.c
video.c:9045:21: error: ‘VDP_DECODER_PROFILE_HEVC_MAIN’ undeclared (first use in this function)
VDP_DECODER_PROFILE_HEVC_MAIN);
^
video.c: In function ‘VdpauRenderFrame’:
video.c:9753:14: warning: assignment makes integer from pointer without a cast [enabled by default]
surface = (VdpVideoSurface *)frame->data[3];
^
video.c:9836:3: warning: passing argument 2 of ‘sws_scale’ from incompatible pointer type [enabled by default]
data, pitches);
^
In file included from video.c:158:0:
/usr/include/libswscale/swscale.h:217:5: note: expected ‘const uint8_t * const*’ but argument is of type ‘uint8_t * const*’
int sws_scale(struct SwsContext *c, const uint8_t *const srcSlice[],
^
video.c:9836:3: warning: passing argument 6 of ‘sws_scale’ from incompatible pointer type [enabled by default]
data, pitches);
^
In file included from video.c:158:0:
/usr/include/libswscale/swscale.h:217:5: note: expected ‘uint8_t * const*’ but argument is of type ‘const void **’
int sws_scale(struct SwsContext *c, const uint8_t *const srcSlice[],
^
video.c:9836:3: warning: pointer targets in passing argument 7 of ‘sws_scale’ differ in signedness [-Wpointer-sign]
data, pitches);
^
In file included from video.c:158:0:
/usr/include/libswscale/swscale.h:217:5: note: expected ‘const int *’ but argument is of type ‘uint32_t *’
int sws_scale(struct SwsContext *c, const uint8_t *const srcSlice[],
^
video.c: In function ‘VdpauSyncRenderFrame’:
video.c:10678:5: warning: ‘pkt_pts’ is deprecated (declared at /usr/include/libavutil/frame.h:285) [-Wdeprecated-declarations]
if (0 && frame->pkt_pts != (int64_t) AV_NOPTS_VALUE) {
^
<builtin>: recipe for target 'video.o' failed
make[1]: *** [video.o] Error 1
make[1]: *** Waiting for unfinished jobs....
make[1]: *** wait: No child processes. Stop.
ls: cannot access /usr/src/vdr-2.2.0/PLUGINS/src/softhddevice/po/*.mo: No such file or directoryFFMPEG Version
Code
Alles anzeigenTydirium:/usr/src/ffmpeg # ffmpeg -v ffmpeg version N-85457-g8378466 Copyright (c) 2000-2017 the FFmpeg developers built with gcc 4.8 (SUSE Linux) configuration: --arch=x86_64 --cpu=core2 --prefix=/usr --enable-version3 --enable-pthreads --enable-vdpau --enable-libmp3lame --enable-libvorbis --enable-libxvid --enable-libtheora --enable-libx264 --enable-libx265 --enable-postproc --enable-openssl --enable-static --enable-shared --shlibdir=/usr/lib64 --enable-gpl --enable-avfilter --enable-nonfree --extra-cflags=-fPIC libavutil 55. 61.100 / 55. 61.100 libavcodec 57. 92.100 / 57. 92.100 libavformat 57. 72.100 / 57. 72.100 libavdevice 57. 7.100 / 57. 7.100 libavfilter 6. 84.101 / 6. 84.101 libswscale 4. 7.100 / 4. 7.100 libswresample 2. 8.100 / 2. 8.100 libpostproc 54. 6.100 / 54. 6.100
Plugin GIT Status
Code
Alles anzeigenTydirium:/usr/src/vdr/PLUGINS/src/softhddevice # git status On branch vpp_support Your branch is up-to-date with 'origin/vpp_support'. nothing to commit, working directory clean Tydirium:/usr/src/vdr/PLUGINS/src/softhddevice # git branch -a list * vpp_support remotes/origin/HEAD -> origin/vpp_support remotes/origin/fixes remotes/origin/libavfilter_integration remotes/origin/master remotes/origin/vpp_menu_integration remotes/origin/vpp_support
-
My guess is outdated VA-API and VDPAU libraries.
-
Hi,
ob der Kernel und nvidia-Treiber noch reichen ist auch nicht gesagt. Für HEVC dürftest du eh nen neueren DVB benötigen (für DVB-T2).
MfG.
Stefan -
Kann es sein, dass bei deinem ffmpeg ein "--enable-vaapi" fehlt?
Bei mir sieht das so aus:
Code
Alles anzeigenvdr01_64 ~ # ffmpeg -version ffmpeg version 3.2.4 Copyright (c) 2000-2017 the FFmpeg developers built with gcc 4.9.4 (Gentoo 4.9.4 p1.0, pie-0.6.4) configuration: --prefix=/usr --libdir=/usr/lib64 --shlibdir=/usr/lib64 --docdir=/usr/share/doc/ffmpeg-3.2.4/html --mandir=/usr/share/man --enable-shared --cc=x86_64-pc-linux-gnu-gcc --cxx=x86_64-pc-linux-gnu-g++ --ar=x86_64-pc-linux-gnu-ar --optflags='-march=core-avx2 -O2 -pipe' --disable-static --enable-avfilter --enable-avresample --disable-stripping --enable-version3 --enable-version3 --enable-nonfree --enable-bzlib --enable-runtime-cpudetect --disable-debug --disable-gcrypt --enable-gnutls --disable-gmp --enable-gpl --enable-hardcoded-tables --enable-iconv --disable-lzma --enable-network --disable-openssl --enable-postproc --enable-libsmbclient --enable-ffplay --enable-sdl2 --enable-vaapi --enable-vdpau --enable-xlib --disable-libxcb --disable-libxcb-shm --disable-libxcb-xfixes --enable-zlib --disable-libcdio --disable-libiec61883 --enable-libdc1394 --enable-libcaca --disable-openal --enable-opengl --disable-libv4l2 --disable-libpulse --enable-libopencore-amrwb --enable-libopencore-amrnb --enable-libfdk-aac --disable-libopenjpeg --enable-libbluray --disable-libcelt --disable-libgme --disable-libgsm --disable-mmal --enable-libmodplug --disable-libopus --disable-libilbc --disable-librtmp --disable-libssh --enable-libschroedinger --disable-libspeex --enable-libvorbis --disable-libvpx --disable-libzvbi --disable-libbs2b --disable-chromaprint --disable-libebur128 --disable-libflite --disable-frei0r --disable-libfribidi --enable-fontconfig --disable-ladspa --disable-libass --enable-libfreetype --disable-librubberband --disable-libzimg --disable-libsoxr --enable-pthreads --disable-libvo-amrwbenc --enable-libmp3lame --disable-libkvazaar --enable-nvenc --disable-libopenh264 --disable-libsnappy --enable-libtheora --disable-libtwolame --disable-libwavpack --disable-libwebp --enable-libx264 --disable-libx265 --enable-libxvid --enable-x11grab --disable-amd3dnow --disable-amd3dnowext --disable-fma4 --disable-xop --enable-pic --cpu=core-avx2 --disable-doc --disable-htmlpages --enable-manpages libavutil 55. 34.101 / 55. 34.101 libavcodec 57. 64.101 / 57. 64.101 libavformat 57. 56.101 / 57. 56.101 libavdevice 57. 1.100 / 57. 1.100 libavfilter 6. 65.100 / 6. 65.100 libavresample 3. 1. 0 / 3. 1. 0 libswscale 4. 2.100 / 4. 2.100 libswresample 2. 3.100 / 2. 3.100 libpostproc 54. 1.100 / 54. 1.100 vdr01_64 ~ #
-
Hi,
ob der Kernel und nvidia-Treiber noch reichen ist auch nicht gesagt. Für HEVC dürftest du eh nen neueren DVB benötigen (für DVB-T2).
MfG.
StefanJa, dachte ich mir schon. Ich will die Tage eh mal auf die LEAP Version upgraden. Wollte vorher auch noch nen neueren NVIDIA Treiber ausprobieren, es gab aber mal einen Grund
warum ich auf der alten Version bleiben musste.
Ich hab die TBS Treiber mit aktuellem Stand, nutze eh DVB-C -
Kann es sein, dass bei deinem ffmpeg ein "--enable-vaapi" fehlt?Ja, weil ich kein vaapi nutze. Ich glaub die Fehlermeldungen die das angeht kann man da auch vernachlässigen.
-
Just go through your log messages and find the error lines:
video.c: In function ‘Vaapi_get_format’:
video.c:4170:20: error: ‘VAProfileHEVCMain10’ undeclared (first use in this function)
VAProfileHEVCMain10);
^
Your libva headers don't contain support for HEVC - you'll need to upgrade the library.
video.c: In function ‘Vdpau_get_format’:
video.c:9039:21: error: ‘VDP_DECODER_PROFILE_HEVC_MAIN_10’ undeclared (first use in this function)
VDP_DECODER_PROFILE_HEVC_MAIN_10);
^
Your libvdpau headers don't contain support for HEVC - you'll need to upgrade the library.If you don't need VA-API support, disable it (make VAAPI=0). The same goes for VDPAU (make VDPAU=0).
-
Just go through your log messages and find the error lines:
.....
Your libvdpau headers don't contain support for HEVC - you'll need to upgrade the library.If you don't need VA-API support, disable it (make VAAPI=0). The same goes for VDPAU (make VDPAU=0).
Thanks, will do so. I will try a newer NVIDIA driver, but I remember I had to stay with the old one for some reason.
-
I remember I had to stay with the old one for some reason.
If that's the case, you might want to use the Debian patches linked in this same thread. -
Hallo,
ich habe jetzt auch nen neuen PC mit Intel-Grafikchip (Kaby Lake Chipsatz) und wollte vdr nochmal als normale Anwendung auf Linux Mint 18.1 (entspricht weitestgehend Ubuntu xenial) zum Laufen kriegen. Basis ist ein selbstkompiliertes vdr 2.2 plus dem bekannten Patch für den HEVC-Frameparser (DVB-T2).
Als erstes hab ich mir ffmpeg 3.3 besorgt und selbst kompiliert (vaapi-Support, postproc-Support und shared libs natürlich aktiviert). Das ganze nach /opt/ffmpeg3.3 installiert und LD_LIBRARY_PATH und PKG_CONFIG_PATH natürlich entsprechend gesetzt, damit die Libraries auch gefunden und dagegen kompiliert werden kann.
Dann softhddevice aus den Sourcen von https://github.com/pesintta/vdr-plugin-softhddevice besorgt und kompiliert. Das make-Kommando ist auch sauber durchgelaufen.
vdr starte ich wie folgt:
Code/usr/local/bin/vdr -c ~/.vdr/config/ -v ~/.vdr/video/ --cachedir=$HOME/.vdr/cache/ -E ~/.vdr/cache/epg.data -d -P'softhddevice -v va-api -g 800x450+100+100' -Pfemon -Pradio -Pepgsearch -Pstreamdev-server -Peepg
Das startet auch und TV läuft. Aber mit Bildstörungen (horizontale Streifen):
[Blockierte Grafik: http://fs5.directupload.net/images/170430/spb6ajkr.jpg]Bei manchen Programmen (etwa ZDF HD über Astra 19.2°) gibt es fast keine solche Störungen, bei den meisten Programmen aber ganz viele. Insgesamt ist das so absolut nicht benutzbar. Ich habe schon in den Plugin-Einstellungen mit den Deinterlacern und sämtlichen anderen Einstellungen herumgespielt, ohne dass sich etwas gebessert hätte. Wenn ich per vnsiserver-Plugin Kodi für die Ausgabe nutze (natürlich auch mit aktiviertem vaapi-Support), kriege ich übrigens ein super Bild bei nur sehr geringer CPU-Last. Grundsätzlich muss es also doch gehen!?
Hat irgendjemand vielleicht eine Idee, was da schief gehen könnte?
Jetzt mitmachen!
Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!