VAAPI transcoding problem? am I using wrong version?
Added by Evren Yurtesen about 5 years ago
I have "HTS Tvheadend 4.2.9~pre+201910311127-0~built201910311332~gitcfa450e~ubuntu19.10.1" installed from mamarley/stable repository.
I am able to use VAAPI with ffmpeg locally. In Tvheadend stream I see 'hevc_vaapi: H265/HEVC (VAAPI)'
But if I try to use it when recording, it just fails:
Nov 9 20:26:09 ubuntu tvheadend[1489]: libav: Using AVStream.codec to pass codec parameters to muxers is deprecated, use AVStream.codecpar instead. Nov 9 20:26:09 ubuntu tvheadend[1489]: message repeated 2 times: [ libav: Using AVStream.codec to pass codec parameters to muxers is deprecated, use AVStream.codecpar instead.] Nov 9 20:26:09 ubuntu tvheadend[1489]: libav: frame size not set Nov 9 20:26:09 ubuntu tvheadend[1489]: dvr: /home/hts/Tvheadend/MTV3 HD/Tulosruutu/Tulosruutu2019-11-0920-25-1.ts from adapter: "Panasonic MN88473 #0 : DVB-C #1", network: "Telia Turku", mux: "410MHz", provider: "MTV3", service: "MTV3 HD" Nov 9 20:26:09 ubuntu tvheadend[1489]: dvr: # type lang resolution aspect ratio sample rate channels Nov 9 20:26:09 ubuntu tvheadend[1489]: dvr: 1 HEVC 1920x1080 ? <disabled, no valid input> Nov 9 20:26:09 ubuntu tvheadend[1489]: dvr: 2 AAC fin 48000 2 Nov 9 20:26:09 ubuntu tvheadend[1489]: dvr: 4 DVBSUB fin Nov 9 20:26:09 ubuntu tvheadend[1489]: dvr: 5 DVBSUB dut Nov 9 20:26:25 ubuntu tvheadend[1489]: subscription: 0049: "DVR: Tulosruutu" unsubscribing from "MTV3 HD"
If I try to stream it to another device it also fails
Nov 9 20:32:10 ubuntu tvheadend[1489]: transcode: 000A: 1:H264 1920x1080 ==> HEVC 1920x1080 (hevc_vaapi) Nov 9 20:32:10 ubuntu tvheadend[1489]: transcode: 000A: 2:MPEG2AUDIO ==> AAC (aac) Nov 9 20:32:10 ubuntu tvheadend[1489]: transcode: 000A: 3:TELETEXT ==> Filtered Nov 9 20:32:10 ubuntu tvheadend[1489]: transcode: 000A: 4:DVBSUB ==> Passthrough Nov 9 20:32:10 ubuntu tvheadend[1489]: subscription: 004A: "::ffff:192.168.1.221 [ | Kodi Media Center ]" subscribing on channel "Sub HD", weight: 100, adapter: "Panasonic MN88473 #1 : DVB-C #1", network: "Telia Turku", mux: "298MHz", provider: "MTV OY", service: "Sub HD", profile="h265_lo", hostname="::ffff:192.168.1.221", username="::ffff:192.168.1.221", client="Kodi Media Center" Nov 9 20:32:10 ubuntu tvheadend[1489]: transcode: 000A: Using preset ultrafast Nov 9 20:32:10 ubuntu tvheadend[1489]: libav: Specified pixel format yuv420p is invalid or not supported Nov 9 20:32:10 ubuntu tvheadend[1489]: transcode: 000A: Unable to open hevc_vaapi encoder Nov 9 20:32:10 ubuntu tvheadend[1489]: tsfix: The timediff for TELETEXT is big (2432829531), using current dts
Do I need 4.3 version of tvheadend?
Thanks!
Replies (26)
RE: VAAPI transcoding problem? am I using wrong version? - Added by Evren Yurtesen about 5 years ago
Well I upgraded to `4.3.0~pre+201911040835-0~built201911041332~gitfda89e8~ubuntu19.10.1` but it does not seem to work either.
I am able to use MPEG-TS Spawn with the following command
ffmpeg -vaapi_device /dev/dri/renderD128 -i pipe:0 -vf 'yadif,format=nv12,hwupload' -map 0:a? -map 0:s? -map 0:v? -c:a aac -c:s copy -c:v hevc_vaapi -f mpegts pipe:1
But not sure why tvheadend is not able to use it directly. I am still seeing <disabled, no valid input>.
Stranglely streaming does not work at all either and I think it said 'Filtered' for all fields. It is very late (or early) right now and I have to look at it again later.
RE: VAAPI transcoding problem? am I using wrong version? - Added by Evren Yurtesen about 5 years ago
If I disable deinterlacing I get the following error:
Nov 10 14:27:43 ubuntu tvheadend7682: libav: AVCodecContext: Driver does not support some wanted packed headers (wanted 0xd, found 0).
Nov 10 14:27:43 ubuntu tvheadend7682: libav: TVHGraph: Impossible to convert between the formats supported by the filter 'in' and the filter 'auto_scaler_0'
Nov 10 14:27:43 ubuntu tvheadend7682: transcode: 0015: 01:HEVC: [mpeg2video => hevc_vaapi]: filters: failed to config filter graph
RE: VAAPI transcoding problem? am I using wrong version? - Added by saen acro about 5 years ago
What is this version 4.3.0~pre+201911040835-0~built201911041332~gitfda89e8~ubuntu19.10.1
current is 4.3-1854~gfda89e85e
What GPU you use?
Post info from:
About (toggle details frame)
RE: VAAPI transcoding problem? am I using wrong version? - Added by Evren Yurtesen about 5 years ago
I installed it from Michael Marley's daily git builds repository, that is why the version number looks like that.
https://launchpad.net/~mamarley/+archive/ubuntu/tvheadend-git
I am using AMD RX 570. Below is the vainfo output
libva info: VA-API version 1.5.0 libva info: va_getDriverName() returns 0 libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/radeonsi_drv_video.so libva info: Found init function __vaDriverInit_1_5 libva info: va_openDriver() returns 0 vainfo: VA-API version: 1.5 (libva 2.5.0) vainfo: Driver version: Mesa Gallium driver 19.2.1 for Radeon RX 570 Series (POLARIS10, DRM 3.33.0, 5.3.0-19-generic, LLVM 9.0.0) vainfo: Supported profile and entrypoints VAProfileMPEG2Simple : VAEntrypointVLD VAProfileMPEG2Main : VAEntrypointVLD VAProfileVC1Simple : VAEntrypointVLD VAProfileVC1Main : VAEntrypointVLD VAProfileVC1Advanced : VAEntrypointVLD VAProfileH264ConstrainedBaseline: VAEntrypointVLD VAProfileH264ConstrainedBaseline: VAEntrypointEncSlice VAProfileH264Main : VAEntrypointVLD VAProfileH264Main : VAEntrypointEncSlice VAProfileH264High : VAEntrypointVLD VAProfileH264High : VAEntrypointEncSlice VAProfileHEVCMain : VAEntrypointVLD VAProfileHEVCMain : VAEntrypointEncSlice VAProfileHEVCMain10 : VAEntrypointVLD VAProfileJPEGBaseline : VAEntrypointVLD VAProfileNone : VAEntrypointVideoProc
Below is the details frame information:
Configure arguments: --build=x86_64-linux-gnu --prefix=/usr --includedir=${prefix}/include --mandir=${prefix}/share/man --infodir=${prefix}/share/info --sysconfdir=/etc --localstatedir=/var --disable-silent-rules --libdir=${prefix}/lib/x86_64-linux-gnu --libexecdir=${prefix}/lib/x86_64-linux-gnu --disable-maintainer-mode --disable-dependency-tracking --prefix=/usr --enable-hdhomerun_client --disable-hdhomerun_static --disable-dvbscan --enable-libav --disable-ffmpeg_static --enable-libx264 --disable-libx264_static --enable-libx265 --disable-libx265_static --enable-libvpx --disable-libvpx_static --enable-libtheora --disable-libtheora_static --enable-libvorbis --disable-libvorbis_static --enable-libfdkaac --disable-libfdkaac_static --enable-libopus --disable-libopus_static --enable-vaapi --enable-nvenc --enable-omx --enable-dvbcsa --enable-dvben50221 --enable-libsystemd_daemon --enable-pcre2 --enable-pngquant --enable-ddci Compiler: Using C compiler: cc Using C flags: -g -O2 -fdebug-prefix-map=/build/tvheadend-DYaMoQ/tvheadend-4.3.0~pre+201911040835=. -fstack-protector-strong -Wformat -Werror=format-security Using LD flags: -Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,now -lhdhomerun -ldvbcsa Build for arch: x86_64 Binaries: Using PYTHON: python Using GZIP: gzip Using BZIP2: bzip2 Options: pie yes ccdebug no cardclient yes cwc yes cccam yes capmt yes constcw yes linuxdvb yes satip_server yes satip_client yes hdhomerun_client yes hdhomerun_static no iptv yes tsfile yes dvbscan no timeshift yes trace yes avahi yes zlib yes libav yes ffmpeg_static no libx264 yes libx264_static no libx265 yes libx265_static no libvpx yes libvpx_static no libtheora yes libtheora_static no libvorbis yes libvorbis_static no libfdkaac yes libfdkaac_static no libopus yes libopus_static no nvenc yes vaapi yes mmal no omx yes inotify yes epoll yes pcre no pcre2 yes uriparser yes ccache no tvhcsa yes bundle no pngquant yes kqueue no dbus_1 yes android no gtimer_check no slow_memoryinfo no libsystemd_daemon yes pcloud_cache yes ddci yes cclang_threadsan no gperftools no execinfo yes mmx yes sse2 yes W_unused_result yes f_stack_protector yes f_stack_protector_strong yes f_stack_check yes f_PIE yes fdatasync yes getloadavg yes atomic32 yes atomic64 yes atomic_time_t yes atomic_ptr yes bitops64 yes lockowner yes qsort_r yes stime yes gmtoff yes recvmmsg yes sendmmsg yes ifnames yes py_gzip yes bin_pkg_config yes bin_xgettext yes bin_msgmerge yes bin_gzip yes bin_bzip2 yes ssl yes linuxdvbapi yes linuxdvb_ca yes libhdhomerun yes upnp yes hwaccels yes inotify_h yes inotify_init1 yes dvbcsa yes epoll_create1 yes mpegts yes mpegts_dvb yes Packages: openssl 1.1.1c zlib 1.2.11 libpcre2-8 10.32 liburiparser 0.9.3 avahi-client 0.7 libavfilter 7.40.101 libswresample 3.3.100 libavresample 4.0.0 libswscale 5.3.100 libavformat 58.20.100 libavcodec 58.35.100 libavutil 56.22.100 libva 1.5.0 libva-x11 1.5.0 libva-drm 1.5.0 dbus-1 1.12.14 libsystemd 242 Installation paths: Prefix: /usr Binaries: ${prefix}/bin Libraries: /usr/lib/x86_64-linux-gnu Data files: ${prefix}/share Man pages: /usr/share/man
RE: VAAPI transcoding problem? am I using wrong version? - Added by saen acro about 5 years ago
Troblem can be everywhere becose using os libs
Try to build it as this
https://tvheadend.org/boards/4/topics/24116
RE: VAAPI transcoding problem? am I using wrong version? - Added by Evren Yurtesen about 5 years ago
What do you mean by using OS libs? What else can it use?
When mamarley/ppa is built against Ubuntu 19.10, it uses the same libs that I have as I am using 19.10 also. Is there any reason why me building it should result in any different result? I feel that we need to debug the issue instead of trying to randomly rebuild. Because when it does not work, we still won't know what is the problem. By some miracle if it works, then we won't know why it worked, which makes it not very useful.
I will never the less build it, but you think the configure arguments given are fine? Because I will use exactly same as what mamarley's build is using I think. He seemed to have everything necessary enabled...
By the way, ffmpeg works for encoding with vaapi and kodi is able to use it for hardware decoding if it makes any difference...
RE: VAAPI transcoding problem? am I using wrong version? - Added by saen acro about 5 years ago
Static library for ffmpeg and codecs is disabled
TVH can build own internal version of ffmpeg + codecs
RE: VAAPI transcoding problem? am I using wrong version? - Added by Evren Yurtesen about 5 years ago
So you wanted static build of ffmpeg etc. OK!
I am building using Autobuild.sh, below is what it said... I guess it satisfies what you want to accomplish?
Compiler: Using C compiler: cc Using LD flags: -ldvbcsa Build for arch: x86_64 Binaries: Using PYTHON: python Using GZIP: gzip Using BZIP2: bzip2 Options: pie yes ccdebug no cardclient yes cwc yes cccam yes capmt yes constcw yes linuxdvb yes satip_server yes satip_client yes hdhomerun_client yes hdhomerun_static yes iptv yes tsfile yes dvbscan yes timeshift yes trace yes avahi yes zlib yes libav yes ffmpeg_static yes libx264 yes libx264_static yes libx265 yes libx265_static yes libvpx yes libvpx_static yes libtheora yes libtheora_static yes libvorbis yes libvorbis_static yes libfdkaac no libfdkaac_static no libopus yes libopus_static yes nvenc no vaapi yes mmal no omx no inotify yes epoll yes pcre no pcre2 yes uriparser yes ccache no tvhcsa yes bundle no pngquant no kqueue no dbus_1 yes android no gtimer_check no slow_memoryinfo no libsystemd_daemon no pcloud_cache yes ddci yes cclang_threadsan no gperftools no execinfo yes mmx yes sse2 yes W_unused_result yes f_stack_protector yes f_stack_protector_strong yes f_stack_check yes f_PIE yes fdatasync yes getloadavg yes atomic32 yes atomic64 yes atomic_time_t yes atomic_ptr yes bitops64 yes lockowner yes qsort_r yes stime yes gmtoff yes recvmmsg yes sendmmsg yes ifnames yes py_gzip yes bin_pkg_config yes bin_xgettext yes bin_msgmerge yes bin_gzip yes bin_bzip2 yes ssl yes linuxdvbapi yes linuxdvb_ca yes upnp yes bin_cmake yes stdcpp yes libogg_static yes hwaccels yes inotify_h yes inotify_init1 yes dvbcsa yes epoll_create1 yes mpegts yes mpegts_dvb yes Packages: openssl 1.1.1c zlib 1.2.11 libpcre2-8 10.32 liburiparser 0.9.3 avahi-client 0.7 libva 1.5.0 libva-x11 1.5.0 libva-drm 1.5.0 dbus-1 1.12.14 Installation paths: Prefix: /usr Binaries: ${prefix}/bin Libraries: ${prefix}/lib Data files: ${prefix}/share Man pages: /usr/share/man Final Binary: /home/eyurtese/tvheadend/build.linux/tvheadend Tvheadend Data Directory: /usr/share/tvheadend
RE: VAAPI transcoding problem? am I using wrong version? - Added by saen acro about 5 years ago
Is it work?
RE: VAAPI transcoding problem? am I using wrong version? - Added by Evren Yurtesen about 5 years ago
but of course it would not compile.... nice
make[5]: Leaving directory '/home/eyurtese/tvheadend' make[4]: Leaving directory '/home/eyurtese/tvheadend' CC src/version.o CC src/uuid.o CC src/main.o In file included from /home/eyurtese/tvheadend/build.linux/ffmpeg/build/ffmpeg/include/libavutil/common.h:488, from /home/eyurtese/tvheadend/build.linux/ffmpeg/build/ffmpeg/include/libavutil/avutil.h:296, from /home/eyurtese/tvheadend/build.linux/ffmpeg/build/ffmpeg/include/libavutil/samplefmt.h:24, from /home/eyurtese/tvheadend/build.linux/ffmpeg/build/ffmpeg/include/libavcodec/avcodec.h:31, from /home/eyurtese/tvheadend/build.linux/ffmpeg/build/ffmpeg/include/libavformat/avformat.h:319, from src/libav.h:26, from src/main.c:70: /home/eyurtese/tvheadend/build.linux/ffmpeg/build/ffmpeg/include/libavutil/mem.h:342:1: error: ‘alloc_size’ attribute ignored on a function returning ‘int’ [-Werror=attributes] 342 | av_alloc_size(2, 3) int av_reallocp_array(void *ptr, size_t nmemb, size_t size); | ^~~~~~~~~~~~~ cc1: all warnings being treated as errors make[3]: *** [Makefile:717: /home/eyurtese/tvheadend/build.linux/src/main.o] Error 1 make[3]: Leaving directory '/home/eyurtese/tvheadend' make[2]: *** [Makefile:110: ffmpeg_all] Error 2 make[2]: Leaving directory '/home/eyurtese/tvheadend' make[1]: *** [debian/rules:15: override_dh_auto_build] Error 2 make[1]: Leaving directory '/home/eyurtese/tvheadend' make: *** [debian/rules:6: build] Error 2 dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2
RE: VAAPI transcoding problem? am I using wrong version? - Added by Evren Yurtesen about 5 years ago
Evren Yurtesen wrote:
but of course it would not compile.... nice
[...]
It looks like tvheadend downloaded some old version which does not have the fix:
http://git.videolan.org/?p=ffmpeg.git;a=commitdiff;h=4361293fcf59edb56879c36edcd25f0a91e0edf8
I am trying to build it with gcc8 again...
RE: VAAPI transcoding problem? am I using wrong version? - Added by Evren Yurtesen about 5 years ago
Well it now compiled, but it does exactly same thing... I am using KODI as client to stream... So what now?
This is what it says with default options, there is sound but no video..
Nov 10 21:59:06 ubuntu tvheadend[25768]: transcode: 0003: 01:MPEG2VIDEO: ==> Using profile vaapi-h265 Nov 10 21:59:06 ubuntu tvheadend[25768]: transcode: 0003: 02:MPEG2AUDIO: ==> Using profile webtv-aac Nov 10 21:59:06 ubuntu tvheadend[25768]: transcode: 0003: 03:DVBSUB: ==> Copy Nov 10 21:59:06 ubuntu tvheadend[25768]: transcode: 0003: 05:MPEG2AUDIO: ==> Filtered out Nov 10 21:59:07 ubuntu tvheadend[25768]: libav: AVCodecContext: Driver does not support some wanted packed headers (wanted 0xd, found 0).
and with deinterlacing disabled in codec profiles. Also only sound...
Nov 10 22:00:28 ubuntu tvheadend[25768]: transcode: 0004: 01:MPEG2VIDEO: ==> Using profile vaapi-h265 Nov 10 22:00:28 ubuntu tvheadend[25768]: transcode: 0004: 02:MPEG2AUDIO: ==> Using profile webtv-aac Nov 10 22:00:28 ubuntu tvheadend[25768]: transcode: 0004: 03:DVBSUB: ==> Copy Nov 10 22:00:28 ubuntu tvheadend[25768]: transcode: 0004: 05:MPEG2AUDIO: ==> Filtered out Nov 10 22:00:29 ubuntu tvheadend[25768]: libav: AVCodecContext: Driver does not support some wanted packed headers (wanted 0xd, found 0). Nov 10 22:00:29 ubuntu tvheadend[25768]: libav: TVHGraph: Impossible to convert between the formats supported by the filter 'in' and the filter 'auto_scaler_0' Nov 10 22:00:29 ubuntu tvheadend[25768]: transcode: 0004: 01:HEVC: [mpeg2video => hevc_vaapi]: filters: failed to config filter graph
This is what I see in about->details now
Configure arguments: --build=x86_64-linux-gnu --prefix=/usr --includedir=${prefix}/include --mandir=${prefix}/share/man --infodir=${prefix}/share/info --sysconfdir=/etc --localstatedir=/var --disable-silent-rules --libexecdir=${prefix}/lib/tvheadend --disable-maintainer-mode --disable-dependency-tracking Compiler: Using C compiler: cc Using LD flags: -ldvbcsa Build for arch: x86_64 Binaries: Using PYTHON: python Using GZIP: gzip Using BZIP2: bzip2 Options: pie yes ccdebug no cardclient yes cwc yes cccam yes capmt yes constcw yes linuxdvb yes satip_server yes satip_client yes hdhomerun_client yes hdhomerun_static yes iptv yes tsfile yes dvbscan yes timeshift yes trace yes avahi yes zlib yes libav yes ffmpeg_static yes libx264 yes libx264_static yes libx265 yes libx265_static yes libvpx yes libvpx_static yes libtheora yes libtheora_static yes libvorbis yes libvorbis_static yes libfdkaac no libfdkaac_static no libopus yes libopus_static yes nvenc no vaapi yes mmal no omx no inotify yes epoll yes pcre no pcre2 yes uriparser yes ccache no tvhcsa yes bundle no pngquant no kqueue no dbus_1 yes android no gtimer_check no slow_memoryinfo no libsystemd_daemon no pcloud_cache yes ddci yes cclang_threadsan no gperftools no execinfo yes mmx yes sse2 yes W_unused_result yes f_stack_protector yes f_stack_protector_strong yes f_stack_check yes f_PIE yes fdatasync yes getloadavg yes atomic32 yes atomic64 yes atomic_time_t yes atomic_ptr yes bitops64 yes lockowner yes qsort_r yes stime yes gmtoff yes recvmmsg yes sendmmsg yes ifnames yes py_gzip yes bin_pkg_config yes bin_xgettext yes bin_msgmerge yes bin_gzip yes bin_bzip2 yes ssl yes linuxdvbapi yes linuxdvb_ca yes upnp yes bin_cmake yes stdcpp yes libogg_static yes hwaccels yes inotify_h yes inotify_init1 yes dvbcsa yes epoll_create1 yes mpegts yes mpegts_dvb yes Packages: openssl 1.1.1c zlib 1.2.11 libpcre2-8 10.32 liburiparser 0.9.3 avahi-client 0.7 libva 1.5.0 libva-x11 1.5.0 libva-drm 1.5.0 dbus-1 1.12.14 Installation paths: Prefix: /usr Binaries: ${prefix}/bin Libraries: ${prefix}/lib Data files: ${prefix}/share Man pages: /usr/share/man
RE: VAAPI transcoding problem? am I using wrong version? - Added by Evren Yurtesen about 5 years ago
It looks like the same problem I am having...
https://tvheadend.org/issues/5465
hmm...
RE: VAAPI transcoding problem? am I using wrong version? - Added by saen acro about 5 years ago
It is possible ;(
https://git.ffmpeg.org/gitweb/ffmpeg.git/commit/f8ad2ddd7a51df5d6e768ba2a6f65ee64b94e29b
can be good patch for begining
RE: VAAPI transcoding problem? am I using wrong version? - Added by Evren Yurtesen about 5 years ago
AMF only supports H264 on Linux and Tvheadend does not support it. It has to be selected like VAAPI. So that patch is not useful for the issue at hand. FFMPEG already works with VAAPI.
There is a problem with Tvheadend. I think it is using something wrong when starting encoding.
I think either Jaroslav or lekma know this better as they seem to have coded the VAAPI support. This needs debugging at Tvheadend side, I need some pointers to how to debug it and what to test.
I could buy them an AMD GPU if they would be interested
RE: VAAPI transcoding problem? am I using wrong version? - Added by Evren Yurtesen about 5 years ago
Here is related logs from libav, there is no picture...
Nov 11 12:04:21 ubuntu tvheadend[13113]: transcode: 0001: 01:MPEG2VIDEO: ==> Using profile vaapi-h265 Nov 11 12:04:21 ubuntu tvheadend[13113]: transcode: 0001: 02:MPEG2AUDIO: ==> Using profile webtv-aac Nov 11 12:04:21 ubuntu tvheadend[13113]: transcode: 0001: 03:DVBSUB: ==> Copy Nov 11 12:04:21 ubuntu tvheadend[13113]: transcode: 0001: 05:DVBSUB: ==> Filtered out Nov 11 12:04:21 ubuntu tvheadend[13113]: TS: Telia Turku/250MHz/Yle TV1 Transport error indicator (total 1) Nov 11 12:04:21 ubuntu tvheadend[13113]: libav: AVCodecContext: Format yuv420p chosen by get_format(). Nov 11 12:04:21 ubuntu tvheadend[13113]: libav: detected 12 logical cores Nov 11 12:04:21 ubuntu tvheadend[13113]: libav: AVFilter: Setting 'time_base' to value '1/90000' Nov 11 12:04:21 ubuntu tvheadend[13113]: libav: AVFilter: Setting 'sample_rate' to value '48000' Nov 11 12:04:21 ubuntu tvheadend[13113]: libav: AVFilter: Setting 'sample_fmt' to value 's16p' Nov 11 12:04:21 ubuntu tvheadend[13113]: libav: AVFilter: Setting 'channel_layout' to value 'stereo' Nov 11 12:04:21 ubuntu tvheadend[13113]: libav: AVFilter: tb:1/90000 samplefmt:s16p samplerate:48000 chlayout:stereo Nov 11 12:04:21 ubuntu tvheadend[13113]: libav: AVFilterGraph: query_formats: 3 queried, 6 merged, 0 already done, 0 delayed Nov 11 12:04:21 ubuntu tvheadend[13113]: libav: SWResampler: Using s16p internally between filters Nov 11 12:04:21 ubuntu tvheadend[13113]: libav: AVFilter: ch:2 chl:stereo fmt:s16p r:48000Hz -> ch:2 chl:stereo fmt:fltp r:48000Hz Nov 11 12:04:21 ubuntu tvheadend[13113]: libav: AVCodecContext: Skipping B slice due to open GOP Nov 11 12:04:21 ubuntu tvheadend[13113]: message repeated 107 times: [ libav: AVCodecContext: Skipping B slice due to open GOP] Nov 11 12:04:21 ubuntu tvheadend[13113]: libav: AVHWDeviceContext: Opened VA display via DRM device /dev/dri/renderD128. Nov 11 12:04:21 ubuntu tvheadend[13113]: libav: AVHWDeviceContext: libva: VA-API version 1.5.0 Nov 11 12:04:21 ubuntu tvheadend[13113]: libav: AVHWDeviceContext: libva: va_getDriverName() returns 0 Nov 11 12:04:21 ubuntu tvheadend[13113]: libav: AVHWDeviceContext: libva: Trying to open /usr/lib/x86_64-linux-gnu/dri/radeonsi_drv_video.so Nov 11 12:04:21 ubuntu tvheadend[13113]: libav: AVHWDeviceContext: libva: Found init function __vaDriverInit_1_5 Nov 11 12:04:21 ubuntu tvheadend[13113]: libav: AVHWDeviceContext: libva: va_openDriver() returns 0 Nov 11 12:04:21 ubuntu tvheadend[13113]: libav: AVHWDeviceContext: Initialised VAAPI connection: version 1.5 Nov 11 12:04:21 ubuntu tvheadend[13113]: libav: AVHWDeviceContext: Format 0x3231564e -> nv12. Nov 11 12:04:21 ubuntu tvheadend[13113]: libav: AVHWDeviceContext: Format 0x30313050 -> p010le. Nov 11 12:04:21 ubuntu tvheadend[13113]: libav: AVHWDeviceContext: Format 0x36313050 -> unknown. Nov 11 12:04:21 ubuntu tvheadend[13113]: libav: AVHWDeviceContext: Format 0x32315659 -> yuv420p. Nov 11 12:04:21 ubuntu tvheadend[13113]: libav: AVHWDeviceContext: Format 0x56595559 -> unknown. Nov 11 12:04:21 ubuntu tvheadend[13113]: libav: AVHWDeviceContext: Format 0x59565955 -> uyvy422. Nov 11 12:04:21 ubuntu tvheadend[13113]: libav: AVHWDeviceContext: Format 0x41524742 -> bgra. Nov 11 12:04:21 ubuntu tvheadend[13113]: libav: AVHWDeviceContext: Format 0x41424752 -> rgba. Nov 11 12:04:21 ubuntu tvheadend[13113]: libav: AVHWDeviceContext: Format 0x58524742 -> bgr0. Nov 11 12:04:21 ubuntu tvheadend[13113]: libav: AVHWDeviceContext: Format 0x58424752 -> rgb0. Nov 11 12:04:21 ubuntu tvheadend[13113]: libav: AVHWDeviceContext: VAAPI driver: Mesa Gallium driver 19.2.1 for Radeon RX 570 Series (POLARIS10, DRM 3.33.0, 5.3.0-19-generic, LLVM 9.0.0). Nov 11 12:04:21 ubuntu tvheadend[13113]: libav: AVHWDeviceContext: Driver not found in known nonstandard list, using standard behaviour. Nov 11 12:04:21 ubuntu tvheadend[13113]: libav: AVHWFramesContext: Created surface 0x2. Nov 11 12:04:21 ubuntu tvheadend[13113]: libav: AVHWFramesContext: Direct mapping disabled: deriving image does not work: 1 (operation failed). Nov 11 12:04:21 ubuntu tvheadend[13113]: libav: AVHWFramesContext: Created surface 0x3. Nov 11 12:04:21 ubuntu tvheadend[13113]: libav: AVHWFramesContext: Created surface 0x4. Nov 11 12:04:21 ubuntu tvheadend[13113]: libav: AVHWFramesContext: Created surface 0x5. Nov 11 12:04:21 ubuntu tvheadend[13113]: libav: AVHWFramesContext: Created surface 0x6. Nov 11 12:04:21 ubuntu tvheadend[13113]: libav: AVHWFramesContext: Created surface 0x7. Nov 11 12:04:21 ubuntu tvheadend[13113]: libav: AVHWFramesContext: Created surface 0x8. Nov 11 12:04:21 ubuntu tvheadend[13113]: libav: AVHWFramesContext: Created surface 0x9. Nov 11 12:04:21 ubuntu tvheadend[13113]: libav: AVHWFramesContext: Created surface 0xa. Nov 11 12:04:21 ubuntu tvheadend[13113]: libav: AVHWFramesContext: Created surface 0xb. Nov 11 12:04:21 ubuntu tvheadend[13113]: libav: AVHWFramesContext: Created surface 0xc. Nov 11 12:04:21 ubuntu tvheadend[13113]: libav: AVHWFramesContext: Created surface 0xd. Nov 11 12:04:21 ubuntu tvheadend[13113]: libav: AVHWFramesContext: Created surface 0xe. Nov 11 12:04:21 ubuntu tvheadend[13113]: libav: AVHWFramesContext: Created surface 0xf. Nov 11 12:04:21 ubuntu tvheadend[13113]: libav: AVHWFramesContext: Created surface 0x10. Nov 11 12:04:21 ubuntu tvheadend[13113]: libav: AVHWFramesContext: Created surface 0x11. Nov 11 12:04:21 ubuntu tvheadend[13113]: libav: AVHWFramesContext: Created surface 0x12. Nov 11 12:04:21 ubuntu tvheadend[13113]: libav: AVHWFramesContext: Created surface 0x13. Nov 11 12:04:21 ubuntu tvheadend[13113]: libav: AVHWFramesContext: Created surface 0x14. Nov 11 12:04:21 ubuntu tvheadend[13113]: libav: AVHWFramesContext: Created surface 0x15. Nov 11 12:04:21 ubuntu tvheadend[13113]: libav: AVHWFramesContext: Created surface 0x16. Nov 11 12:04:21 ubuntu tvheadend[13113]: libav: AVHWFramesContext: Created surface 0x17. Nov 11 12:04:21 ubuntu tvheadend[13113]: libav: AVHWFramesContext: Created surface 0x18. Nov 11 12:04:21 ubuntu tvheadend[13113]: libav: AVHWFramesContext: Created surface 0x19. Nov 11 12:04:21 ubuntu tvheadend[13113]: libav: AVHWFramesContext: Created surface 0x1a. Nov 11 12:04:21 ubuntu tvheadend[13113]: libav: AVHWFramesContext: Created surface 0x1b. Nov 11 12:04:21 ubuntu tvheadend[13113]: libav: AVHWFramesContext: Created surface 0x1c. Nov 11 12:04:21 ubuntu tvheadend[13113]: libav: AVHWFramesContext: Created surface 0x1d. Nov 11 12:04:21 ubuntu tvheadend[13113]: libav: AVHWFramesContext: Created surface 0x1e. Nov 11 12:04:21 ubuntu tvheadend[13113]: libav: AVHWFramesContext: Created surface 0x1f. Nov 11 12:04:21 ubuntu tvheadend[13113]: libav: AVHWFramesContext: Created surface 0x20. Nov 11 12:04:21 ubuntu tvheadend[13113]: libav: AVHWFramesContext: Created surface 0x21. Nov 11 12:04:21 ubuntu tvheadend[13113]: libav: AVCodecContext: Input surface format is nv12. Nov 11 12:04:21 ubuntu tvheadend[13113]: libav: AVCodecContext: Using VAAPI profile VAProfileHEVCMain (17). Nov 11 12:04:21 ubuntu tvheadend[13113]: libav: AVCodecContext: Using VAAPI entrypoint VAEntrypointEncSlice (6). Nov 11 12:04:21 ubuntu tvheadend[13113]: libav: AVCodecContext: Using VAAPI render target format YUV420 (0x1). Nov 11 12:04:21 ubuntu tvheadend[13113]: libav: AVCodecContext: Using constant-quality mode. Nov 11 12:04:21 ubuntu tvheadend[13113]: libav: AVCodecContext: Using intra and P-frames (supported references: 1 / 0). Nov 11 12:04:21 ubuntu tvheadend[13113]: libav: AVCodecContext: Driver does not support some wanted packed headers (wanted 0xd, found 0). Nov 11 12:04:21 ubuntu tvheadend[13113]: libav: AVCodecContext: Using nv12 as format of reconstructed frames. Nov 11 12:04:21 ubuntu tvheadend[13113]: libav: AVHWFramesContext: Created surface 0x22. Nov 11 12:04:21 ubuntu tvheadend[13113]: libav: AVHWFramesContext: Direct mapping disabled: deriving image does not work: 1 (operation failed). Nov 11 12:04:21 ubuntu tvheadend[13113]: libav: AVHWFramesContext: Created surface 0x23. Nov 11 12:04:21 ubuntu tvheadend[13113]: libav: AVHWFramesContext: Created surface 0x24. Nov 11 12:04:21 ubuntu tvheadend[13113]: libav: AVCodecContext: Using fixed QP = 25 / 25 / 30 for IDR- / P- / B-frames. Nov 11 12:04:21 ubuntu tvheadend[13113]: libav: AVCodecContext: Using level 3. Nov 11 12:04:21 ubuntu tvheadend[13113]: libav: AVFilter: Setting 'video_size' to value '720x576' Nov 11 12:04:21 ubuntu tvheadend[13113]: libav: AVFilter: Setting 'pix_fmt' to value 'yuv420p' Nov 11 12:04:21 ubuntu tvheadend[13113]: libav: AVFilter: Setting 'time_base' to value '1/50' Nov 11 12:04:21 ubuntu tvheadend[13113]: libav: AVFilter: Setting 'pixel_aspect' to value '64/45' Nov 11 12:04:21 ubuntu tvheadend[13113]: libav: AVFilter: w:720 h:576 pixfmt:yuv420p tb:1/50 fr:0/1 sar:64/45 sws_param: Nov 11 12:04:21 ubuntu tvheadend[13113]: libav: AVFilter: Setting 'pix_fmts' to value 'nv12|vaapi_vld' Nov 11 12:04:21 ubuntu tvheadend[13113]: libav: AVFilter: w:iw h:ih flags:'bilinear' interl:0 Nov 11 12:04:21 ubuntu tvheadend[13113]: libav: AVFilter: auto-inserting filter 'auto_scaler_0' between the filter 'Parsed_yadif_0' and the filter 'Parsed_format_1' Nov 11 12:04:21 ubuntu tvheadend[13113]: libav: AVFilterGraph: query_formats: 5 queried, 3 merged, 1 already done, 0 delayed Nov 11 12:04:21 ubuntu tvheadend[13113]: libav: AVFilter: w:720 h:576 fmt:yuv420p sar:64/45 -> w:720 h:576 fmt:nv12 sar:64/45 flags:0x2 Nov 11 12:04:21 ubuntu tvheadend[13113]: libav: hwupload: Surface format is nv12. Nov 11 12:04:21 ubuntu tvheadend[13113]: libav: AVHWFramesContext: Created surface 0x26. Nov 11 12:04:21 ubuntu tvheadend[13113]: libav: AVHWFramesContext: Direct mapping disabled: deriving image does not work: 1 (operation failed). Nov 11 12:04:21 ubuntu tvheadend[13113]: libav: AVHWFramesContext: Map surface 0x26. Nov 11 12:04:21 ubuntu tvheadend[13113]: libav: AVHWFramesContext: Unmap surface 0x26. Nov 11 12:04:21 ubuntu tvheadend[13113]: libav: AVCodecContext: Encode frame: 720x576 (48959). Nov 11 12:04:21 ubuntu tvheadend[13113]: libav: AVCodecContext: Pictures ending truncated GOP: Nov 11 12:04:21 ubuntu tvheadend[13113]: libav: AVCodecContext: Nov 11 12:04:21 ubuntu tvheadend[13113]: libav: AVCodecContext: Pictures: Nov 11 12:04:21 ubuntu tvheadend[13113]: libav: AVCodecContext: IDR (0/0) Nov 11 12:04:21 ubuntu tvheadend[13113]: libav: AVCodecContext: Nov 11 12:04:21 ubuntu tvheadend[13113]: libav: AVCodecContext: Issuing encode for pic 0/0 as type IDR. Nov 11 12:04:21 ubuntu tvheadend[13113]: libav: AVCodecContext: No reference pictures. Nov 11 12:04:21 ubuntu tvheadend[13113]: libav: AVCodecContext: Input surface is 0x26. Nov 11 12:04:21 ubuntu tvheadend[13113]: libav: AVCodecContext: Recon surface is 0x24. Nov 11 12:04:21 ubuntu tvheadend[13113]: libav: AVCodecContext: Allocated output buffer 0x27 Nov 11 12:04:21 ubuntu tvheadend[13113]: libav: AVCodecContext: Output buffer is 0x27. Nov 11 12:04:21 ubuntu tvheadend[13113]: libav: AVCodecContext: Param buffer (22) is 0x28. Nov 11 12:04:21 ubuntu tvheadend[13113]: libav: AVCodecContext: Param buffer (23) is 0x29. Nov 11 12:04:21 ubuntu tvheadend[13113]: libav: AVCodecContext: Slice 0: 0-17 (18 rows), 0-413 (414 blocks). Nov 11 12:04:21 ubuntu tvheadend[13113]: libav: AVCodecContext: Param buffer (24) is 0x2a. Nov 11 12:04:21 ubuntu tvheadend[13113]: libav: AVCodecContext: Sync to pic 0/0 (input surface 0x26). Nov 11 12:04:21 ubuntu tvheadend[13113]: libav: AVCodecContext: Output buffer: 12064 bytes (status 10101010). Nov 11 12:04:21 ubuntu tvheadend[13113]: libav: AVCodecContext: Output read for pic 0/0. Nov 11 12:04:21 ubuntu tvheadend[13113]: libav: AVHWFramesContext: Map surface 0x26. Nov 11 12:04:21 ubuntu tvheadend[13113]: libav: AVHWFramesContext: Unmap surface 0x26. Nov 11 12:04:21 ubuntu tvheadend[13113]: libav: AVCodecContext: Encode frame: 720x576 (52559). Nov 11 12:04:21 ubuntu tvheadend[13113]: libav: AVCodecContext: Pictures: Nov 11 12:04:21 ubuntu tvheadend[13113]: libav: AVCodecContext: IDR (0/0) Nov 11 12:04:21 ubuntu tvheadend[13113]: libav: AVCodecContext: P (1/1) Nov 11 12:04:21 ubuntu tvheadend[13113]: libav: AVCodecContext: Nov 11 12:04:21 ubuntu tvheadend[13113]: libav: AVCodecContext: Issuing encode for pic 1/1 as type P. Nov 11 12:04:21 ubuntu tvheadend[13113]: libav: AVCodecContext: Refers to: Nov 11 12:04:21 ubuntu tvheadend[13113]: libav: AVCodecContext: 0/0 Nov 11 12:04:21 ubuntu tvheadend[13113]: libav: AVCodecContext: . Nov 11 12:04:21 ubuntu tvheadend[13113]: libav: AVCodecContext: Input surface is 0x26. Nov 11 12:04:21 ubuntu tvheadend[13113]: libav: AVCodecContext: Recon surface is 0x23. Nov 11 12:04:21 ubuntu tvheadend[13113]: libav: AVCodecContext: Output buffer is 0x27. Nov 11 12:04:21 ubuntu tvheadend[13113]: libav: AVCodecContext: Param buffer (23) is 0x28. Nov 11 12:04:21 ubuntu tvheadend[13113]: libav: AVCodecContext: Slice 0: 0-17 (18 rows), 0-413 (414 blocks). Nov 11 12:04:21 ubuntu tvheadend[13113]: libav: AVCodecContext: Param buffer (24) is 0x29. Nov 11 12:04:21 ubuntu tvheadend[13113]: libav: AVCodecContext: Sync to pic 1/1 (input surface 0x26). Nov 11 12:04:21 ubuntu tvheadend[13113]: libav: AVCodecContext: Output buffer: 5880 bytes (status 10101010). Nov 11 12:04:21 ubuntu tvheadend[13113]: libav: AVCodecContext: Output read for pic 1/1. Nov 11 12:04:21 ubuntu tvheadend[13113]: libav: AVHWFramesContext: Map surface 0x26. Nov 11 12:04:21 ubuntu tvheadend[13113]: libav: AVHWFramesContext: Unmap surface 0x26. Nov 11 12:04:21 ubuntu tvheadend[13113]: libav: AVCodecContext: Encode frame: 720x576 (56159). Nov 11 12:04:21 ubuntu tvheadend[13113]: libav: AVCodecContext: Pictures: Nov 11 12:04:21 ubuntu tvheadend[13113]: libav: AVCodecContext: P (1/1) Nov 11 12:04:21 ubuntu tvheadend[13113]: libav: AVCodecContext: P (2/2)
RE: VAAPI transcoding problem? am I using wrong version? - Added by M A Ben Amara about 5 years ago
would also be nice to add support for 10bit hevc stream decode
i always get this error when trying to transcode from 2160p to 1080p streams ...
vaapi: decode: unsupported pixel format: yuv420p10le
so i guess the buildin ffmpeg is for 8bit only, i ll have to check how it ends up when using hevc as codec (output) if that makes a difference.
im running tvheadend actually in a docker enviroment (lsio) but i assume its dependant to the tvheadend ffmpeg used.
h264 is all fine here, no issues here
INTEL iGPU UHD630 (i7-8700)
RE: VAAPI transcoding problem? am I using wrong version? - Added by Evren Yurtesen about 5 years ago
@"M A Ben Amara" I am not sure how what you are saying is related to the problem. First of all I am not using hardware decoding. My problem is about encoding, not about decoding. You will end up exactly in the same place when you encode using HEVC because you have problem decoding the stream.
Anyway, I am already receiving transmission in h264. I need it in h265 to save space when recording. I am not sure why I would use docker for this purpose. I built tvheadend myself and let it download and compile ffmpeg version it likes. It should work, but it does not.
Hopefully somebody with an AMD GPU can chime in and tell if they could get it working.
RE: VAAPI transcoding problem? am I using wrong version? - Added by M A Ben Amara about 5 years ago
you are right, i have a different issue and it doesnt belong here, i ll make a new topic with some debugging when i find time. and no, i didnt wanted to advice to use a docker, sorry.
my issue is only hevc decoding (encoding to hevc seems to work here)
sorry for the wrong post.
RE: VAAPI transcoding problem? am I using wrong version? - Added by Evren Yurtesen about 5 years ago
You say encoding to HEVC works. Does it preserve Aspect Ratio? Because I am able to encode using FFMPEG from command line but aspect ratio gets screwed for some channels which has special AR setting. Seems to be a known bug with VAAPI hardware encoding using FFMPEG.
RE: VAAPI transcoding problem? am I using wrong version? - Added by M A Ben Amara about 5 years ago
Evren Yurtesen wrote:
You say encoding to HEVC works. Does it preserve Aspect Ratio? Because I am able to encode using FFMPEG from command line but aspect ratio gets screwed for some channels which has special AR setting. Seems to be a known bug with VAAPI hardware encoding using FFMPEG.
if you mean me, yes, attached a sample, aspect is also as it should be.
tvh_hevc.PNG (911 KB) tvh_hevc.PNG |
RE: VAAPI transcoding problem? am I using wrong version? - Added by Evren Yurtesen about 5 years ago
Yes @"M A BEN Amara". VLC does not seem to be showing all the media information. I tested the following file with VLC and it does not show the aspect ratio. (although it should)
https://drive.google.com/file/d/1-IDAYhfj93aPJPizWKttpfGV-KVPKKSx/view
If I open it with MPC-HC I see the aspect ratio printed in media info. See my screenshot on the left is original video and on the right is VAAPI encoded to h264.
Perhaps the problem is more difficult to see with FullHD broadcast as the SD broadcast here is 720x576 and it looks like a box (roughly ~ 4:3) without the correct aspect ratio. But FullHD is 1920x1080 and it is natively 16:9 so it will look the same even with this information is lost via VAAPI. Try a channel with more square resolution
See this ticket for more information. There is link to encoded version of the same video and ffmpeg encoding information:
https://trac.ffmpeg.org/ticket/8376
Obviously the issue in this case is ffmpeg and different than my original issue with transcoding/tvheadend (because tvheadend transcoding does not work at all.). But it would be interesting to see if tvheadend has the same problem or not.
vaapi_encoding_problem.jpg (149 KB) vaapi_encoding_problem.jpg | vaapi aspect ratio problem |
RE: VAAPI transcoding problem? am I using wrong version? - Added by M A Ben Amara about 5 years ago
i tested ~ 30 channels, all where good, also 4:3 shows ... actually i only use h264 source and no more 576i mpeg2 sources, didnt tested them, if i may find some time i can add such a channel and look if thats also working here.
about VLC not showing the aspect ratio, yes, but the display switches to the fitting screen, i know that "morphed" behavior from early days when i made some wrong settings in encoding ...
and as you said i have different issues with hevc decoding so im wrong here
RE: VAAPI transcoding problem? am I using wrong version? - Added by Evren Yurtesen about 5 years ago
@"M A Ben Amara" It is interesting. Anyway, this issue is irrelevant to my problem. But if you want you can test from command line using ffmpeg/vaapi as described here with given small sample files.
https://trac.ffmpeg.org/ticket/8376
RE: VAAPI transcoding problem? am I using wrong version? - Added by M A Ben Amara about 5 years ago
i made some small samples, when u want take a look ... onedrive
https://1drv.ms/u/s!ApY1s9BRY-iSqEOFPmSbWsKuXuV7?e=cwn2Ox
sources are still all europe streams, also added 2 x 4:3 aspect ratio streams, all encoded to hevc 720 (see attachement),
and im too lazy to add mpeg2 576i streams as source, so all are based on h264 sources ...
i look now further with my issue with hw decoding hevc and this crap error
vaapi: decode: unsupported pixel format: yuv420p10le
codec_profile.PNG (25 KB) codec_profile.PNG | |||
stream_profile.PNG (28 KB) stream_profile.PNG |