wang-bin / QtAV

A cross-platform multimedia framework based on Qt and FFmpeg. 基于Qt和FFmpeg的跨平台高性能音视频播放框架. Recommand to use new sdk https://github.com/wang-bin/mdk-sdk
http://qtav.org
3.94k stars 1.5k forks source link

BlackScreen under iOS with VideoToolbox and DVB-S2 #998

Open GitHubKsti opened 6 years ago

GitHubKsti commented 6 years ago

QtAV, Qt version and platform

current version with the following video priority for the qml object

videoCodecPriority: [ "MediaCodec", "VideoToolbox", "FFmpeg", "VAAPI" ]

Reproduction steps

create any project with using of an dvb-s2 stream and the codec priority above

Expected behavior

should show video

Actual behavior

shows black screen with audio

Has anybody the same problem?

GitHubKsti commented 6 years ago

When i am using ffmpeg instead of videotoolbox: everything works fine here is the log: Debuggen beginnt handleNewRelayConnection QML debugging is enabled. Only use this in a safe environment. AudioResampler::Register(..., FFmpeg) Singleton 0x1c808f280 created... QML debugging is enabled. Only use this in a safe environment. AudioResampler::Register(..., FFmpeg) Singleton 0x1c808f280 created... AudioOutputBackend::Register(..., AudioToolbox) Singleton 0x1c808f2d0 created... AudioOutputBackend::Register(..., OpenAL) VideoDecoder::Register(..., CUDA) Singleton 0x1c808f320 created... VideoDecoder::Register(..., VideoToolbox) SubtitleProcessor::Register(..., FFmpeg) Singleton 0x1c0090f90 created... AudioDecoder::Register(..., FFmpeg) Singleton 0x1c0090f40 created... ImageConverter::Register(..., FFmpeg) Singleton 0x1c0090ef0 created... AudioOutputBackend::Register(..., AudioToolbox) Singleton 0x1c808f2d0 created... AudioOutputBackend::Register(..., OpenAL) VideoDecoder::Register(..., CUDA) Singleton 0x1c808f320 created... VideoDecoder::Register(..., VideoToolbox) SubtitleProcessor::Register(..., FFmpeg) Singleton 0x1c0090f90 created... AudioDecoder::Register(..., FFmpeg) Singleton 0x1c0090f40 created... ImageConverter::Register(..., FFmpeg) Singleton 0x1c0090ef0 created... MediaIO::Register(..., QIODevice) Singleton 0x1c808f370 created... MediaIO::Register(..., QFile) MediaIO::Register(..., SatIP) AudioOutputBackend::Register(..., null) VideoDecoder::Register(..., FFmpeg) VideoRenderer::Register(..., QQuickItem) Singleton 0x1c808f3c0 created... VideoRenderer::Register(..., QuickFBO) MediaIO::Register(..., QIODevice) Singleton 0x1c808f370 created... MediaIO::Register(..., QFile) MediaIO::Register(..., SatIP) AudioOutputBackend::Register(..., null) VideoDecoder::Register(..., FFmpeg) VideoRenderer::Register(..., QQuickItem) Singleton 0x1c808f3c0 created... VideoRenderer::Register(..., QuickFBO) JIT is disabled for QML. Property bindings and animations will be very slow. Visit https://wiki.qt.io/V4 to learn about possible solutions for your platform. JIT is disabled for QML. Property bindings and animations will be very slow. Visit https://wiki.qt.io/V4 to learn about possible solutions for your platform. "" "" init() init() qrc:/qml/App.qml:629: TypeError: Cannot call method 'replace' of undefined qrc:/qml/App.qml:629: TypeError: Cannot call method 'replace' of undefined qrc:/qml/App.qml:554: TypeError: Cannot read property 'position' of undefined qrc:/qml/App.qml:554: TypeError: Cannot read property 'position' of undefined QtAV 1.12.0(Nov 13 2017, 17:16:03) Multimedia framework base on Qt and FFmpeg. Distributed under the terms of LGPLv2.1 or later. Shanghai University->S3 Graphics->Deepin->PPTV, Shanghai, China Copyright (C) 2012-2017 Wang Bin (aka. Lucas Wang) wbsecg1@gmail.com Donate: http://qtav.org/donate.html Source: https://github.com/wang-bin/QtAV Home page: http://qtav.org QtAV 1.12.0(Nov 13 2017, 17:16:03) Multimedia framework base on Qt and FFmpeg. Distributed under the terms of LGPLv2.1 or later. ShanghaQtAV 1.12.0(Nov 13 2017, 17:16:03) Multimedia framework base on Qt and FFmpeg. Distributed under the terms of LGPLv2.1 or later. Shanghai University->S3 Graphics->Deepin->PPTV, Shanghai, China Copyright (C) 2012-2017 Wang Bin (aka. Lucas Wang) wbsecg1@gmail.com Donate: http://qtav.org/donate.html Source: https://github.com/wang-bin/QtAV Home page: http://qtav.org QtAV 1.12.0(Nov 13 2017, 17:16:03) Multimedia framework base on Qt and FFmpeg. Distributed under the terms of LGPLv2.1 or later. Shanghai University->S3 Graphics->Deepin->PPTV, Shanghai, China Copyright (C) 2012-2017 Wang Bin (aka. Lucas Wang) wbsecg1@gmail.com Donate: http://qtav.org/donate.html Source: https://github.com/wang-bin/QtAV Home page: http://qtav.org "Build with Qt-5.7.1" "FFmpeg/Libav configuration: --target-os=darwin --arch=arm64 --cc='xcrun -sdk iphoneos clang' --enable-cross-compile --disable-debug --disable-programs --disable-doc --enable-pic --enable-videotoolbox --disable-demuxers --enable-demuxer=mpegts --extra-cfli University->S3 Graphics->Deepin->PPTV, Shanghai, China Copyright (C) 2012-2017 Wang Bin (aka. Lucas Wang) wbsecg1@gmail.com Donate: http://qtav.org/donate.html Source: https://github.com/wang-bin/QtAV Home page: http://qtav.org "Build with Qt-5.7.1" "FFmpeg/Libav configuration: --target-os=darwin --arch=arm64 --cc='xcrun -sdk iphoneos clang' --enable-cross-compile --disable-debug --disable-programs --disable-doc --enable-pic --enable-videotoolbox --disable-demuxers --enable-demuxer=mpegts --extra-cflags='-arch arm64 -mios-version-min=8.0 -fembed-bitcode' --extra-ldflags='-arch arm64 -mios-version-min=8.0 -fembed-bitcode' --prefix=/Users/timosteinwender/Documents/development/digital_devices_sat_ip/environment/temp/iOS/FFmpeg/thin/arm64" "Build with avutil-55.34.101" "Build with avcodec-57.64.101" "Build with avformat-57.56.101" "Build with avfilter-6.65.100" "Build with avdevice-57.1.100" "Build with swresample-2.3.100" "Build with swscale-4.2.100" Registered audio backends: ("AudioToolbox", "OpenAL", "null") AudioOutputBackend::id("AudioToolbox") ags='-arch arm64 -mios-version-min=8.0 -fembed-bitcode' --extra-ldflags='-arch arm64 -mios-version-min=8.0 -fembed-bitcode' --prefix=/Users/timosteinwender/Documents/development/digital_devices_sat_ip/environment/temp/iOS/FFmpeg/thin/arm64" "Build with avutil-55.34.101" "Build with avcodec-57.64.101" "Build with avformat-57.56.101" "Build with avfilter-6.65.100" "Build with avdevice-57.1.100" "Build with swresample-2.3.100" "Build with swscale-4.2.100" Registered audio backends: ("AudioToolbox", "OpenAL", "null") AudioOutputBackend::id("AudioToolbox") qml: ---- qml: running: false qml: player.status 1 qml: player.playbackState 0 qml: ---- qml: ---- qml: running: false qml: player.status 1 qml: player.playbackState 0 qml: ---- VideoDecoder::id("MediaCodec") Not found VideoDecoder::id("VideoToolbox") VideoDecoder::id("FFmpeg") VideoDecoder::id("VAAPI") Not found VideoDecoder::id("MediaCodec") Not found VideoDecoder::id("VideoToolbox") VideoDecoder::id("FFmpeg") VideoDecoder::id("VAAPI") Not found qml: ---- qml: running: false qml: player.status 1 qml: player.playbackState 0 qml: ---- qml: ---- qml: running: false qml: player.status 1 qml: player.playbackState 0 qml: ---- qrc:/qml/App.qml:629: TypeError: Cannot call method 'replace' of undefined qrc:/qml/App.qml:629: TypeError: Cannot call method 'replace' of undefined qml: state=CLOSED qml: state=CLOSED qml: onCurrentChannelNumberChanged: 0 qml: channelListModel count: 1323 qml: onCurrentChannelNumberChanged: 0 qml: channelListModel count: 1323 qml: Device: 192.168.12.13 qml: Device: 192.168.12.13 qml: Player newSource: satip://192.168.12.13:554/?src=1&freq=11836&pol=h&msys=dvbs&sr=27500&pids=0,100,101,102,103,106,104 qml: Player newSource: satip://192.168.12.13:554/?src=1&freq=11836&pol=h&msys=dvbs&sr=27500&pids=0,100,101,102,103,106,104 qrc:/qml/BottomPanel.qml:233: TypeError: Cannot read property 'id' of undefined qrc:/qml/BottomPanel.qml:233: TypeError: Cannot read property 'id' of undefined qrc:/qml/App.qml:266:32: Unable to assign OSDButton_QMLTYPE_77 to QQuickAnchorLine qrc:/qml/App.qml:266:32: Unable to assign OSDButton_QMLTYPE_77 to QQuickAnchorLine "OpenGL version: 3.0 hasGLSL: 1" "GL_VERSION: OpenGL ES 3.0 Metal - 50.8" "GL_VENDOR: Apple Inc." "GL_RENDERER: Apple A10X GPU" "GL_SHADING_LANGUAGE_VERSION: OpenGL ES GLSL ES 3.00" "Is OpenGLES: 1" "Is EGL: 0" "GLSL version: 300" "Has PBO: 1" "using gl_param_es3rg8" "Has 16bit texture: 0" "check gl3 rg: 0x822B" "Has RG texture: 1" QSurfaceFormat(version 3.0, options QFlags(), depthBufferSize 24, redBufferSize -1, greenBufferSize -1, blueBufferSize -1, alphaBufferSize -1, stencilBufferSize 8, samples -1, swapBehavior 2, swapInterval 1, profile 0) "OpenGL version: 3.0 hasGLSL: 1" "GL_VERSION: OpenGL ES 3.0 Metal - 50.8" "GL_VENDOR: Apple Inc." "GL_RENDERER: Apple A10X GPU" "GL_SHADING_LANGUAGE_VERSION: OpenGL ES GLSL ES 3.00" "Is OpenGLES: 1" "Is EGL: 0" "GLSL version: 300" "Has PBO: 1" "using gl_param_es3rg8" "Has 16bit texture: 0" "check gl3 rg: 0x822B" "Has RG texture: 1" QSurfaceFormat(version 3.0, options QFlags(), depthBufferSize 24, redBufferSize -1, greenBufferSize -1, blueBufferSize -1, alphaBufferSize -1, stencilBufferSize 8, samples -1, swapBehavior 2, swapInterval 1, profile 0) qml: source=satip://192.168.12.13:554/?src=1&freq=11836&pol=h&msys=dvbs&sr=27500&pids=0,100,101,102,103,106,104 qml: source=satip://192.168.12.13:554/?src=1&freq=11836&pol=h&msys=dvbs&sr=27500&pids=0,100,101,102,103,106,104 qml: error=0 qml: error=0 "AudioQueue is not created. skip close" "AudioQueue is not created. skip close" AudioOutputBackend::id("AudioToolbox") AudioOutputBackend::id("AudioToolbox") qml: SRC: satip://192.168.12.13:554/?src=1&freq=11836&pol=h&msys=dvbs&sr=27500&pids=0,100,101,102,103,106,104 qml: SRC: satip://192.168.12.13:554/?src=1&freq=11836&pol=h&msys=dvbs&sr=27500&pids=0,100,101,102,103,106,104 Loading QVariant(QString, "satip://192.168.12.13:554/?src=1&freq=11836&pol=h&msys=dvbs&sr=27500&pids=0,100,101,102,103,106,104") ... qml: STAAAART Loading QVariant(QString, "satip://192.168.12.13:554/?src=1&freq=11836&pol=h&msys=dvbs&sr=27500&pids=0,100,101,102,103,106,104") ... qml: STAAAART qml: player.muted=false qml: player.muted=false RTSP socket connection established. RTSP socket connection established. Bound to port 17084 Bound to port 17084 Send: ' "SETUP rtsp://192.168.12.13:554/?src=1&freq=11836&pol=h&msys=dvbs&sr=27500&pids=0,100,101,102,103,106,104 RTSP/1.0\r\nCSeq: 1\r\nTransport: RTP/AVP;unicast;client_port=17084-17085\r\n\r\n" ' Send: ' "SETUP rtsp://192.168.12.13:554/?src=1&freq=11836&pol=h&msys=dvbs&sr=27500&pids=0,100,101,102,103,106,104 RTSP/1.0\r\nCSeq: 1\r\nTransport: RTP/AVP;unicast;client_port=17084-17085\r\n\r\n" ' RTSP socket ready for reading. RTSP socket ready for reading. RTSP socket ready for reading. RTSP socket ready for reading. "all closed and reseted" "all closed and reseted" MediaIO forced format: "mpegts" , 0x10725cf48 MediaIO forced format: "mpegts" , 0x10725cf48 "avformat_open_input: d->format_ctx:'0x10d0e4a00'..., MediaIO('SatIP'): 0x1c823f6a0" "avformat_open_input: d->format_ctx:'0x10d0e4a00'..., MediaIO('SatIP'): 0x1c823f6a0" "Can not seek. MediaIO[QtAV::MediaIO] is not a seekable IO" [FFmpeg:mpegts] Unable to seek back to the start "Can not seek. MediaIO[QtAV::MediaIO] is not a seekable IO" [FFmpeg:mpegts] Unable to seek back to the start [FFmpeg:mpegts] Unable to seek back to the start [FFmpeg:mpegts] Unable to seek back to the start "(repeat 1)Can not seek. MediaIO[QtAV::MediaIO] is not a seekable IO\navformat_open_input: (with MediaIO) ret:0" "(repeat 1)Can not seek. MediaIO[QtAV::MediaIO] is not a seekable IO\navformat_open_input: (with MediaIO) ret:0" qml: status=3 qml: status=3 "avfmtctx.flags: 2097793, iformat.flags" "avfmtctx.flags: 2097793, iformat.flags" "notify_interval: 500" "notify_interval: 500" "stream: 0, duration=-9223372036854775808 (-102481911520608624 ms), time_base=0.000011" "stream: 0, duration=-9223372036854775808 (-102481911520608624 ms), time_base=0.000011" "codec: mpeg2video(MPEG-2 video)" "codec: mpeg2video(MPEG-2 video)" "has audio" AudioDecoder::id("FFmpeg") "has audio" AudioDecoder::id("FFmpeg") "QtAV::AudioDecoderFFmpeg thread type: Single, count: 1" "new audio thread" "QtAV::AudioDecoderFFmpeg thread type: Single, count: 1" "new audio thread" "demux thread setAudioThread" "demux thread setAudioThread" "output not changed: 0x1c0233900" "output not changed: 0x1c0233900" "set AVThread output" "set AVThread output" "stream: 1, duration=-9223372036854775808 (-102481911520608624 ms), time_base=0.000011" "stream: 1, duration=-9223372036854775808 (-102481911520608624 ms), time_base=0.000011" "codec: mp3(MP3 (MPEG audio layer 3))" "codec: mp3(MP3 (MPEG audio layer 3))" "**trying video decoder: VideoToolbox..." "**trying video decoder: VideoToolbox..." "opening VideoToolbox module" "opening VideoToolbox module" "QtAV::VideoDecoderVideoToolbox thread type: Single, count: 1" "QtAV::VideoDecoderVideoToolbox thread type: Single, count: 1" "**Video decoder found:0x1c02329e0" "setCapture 0x1c8a8cf80" "**Video decoder found:0x1c02329e0" "setCapture 0x1c8a8cf80" "stream: 0, duration=-9223372036854775808 (-102481911520608624 ms), time_base=0.000011" "stream: 0, duration=-9223372036854775808 (-102481911520608624 ms), time_base=0.000011" "codec: mpeg2video(MPEG-2 video)" "codec: mpeg2video(MPEG-2 video)" "auto select clock: audio > external" "Using AudioClock" "Clock initial value: 0.000000" "Starting audio thread..." "auto select clock: audio > external" "Using AudioClock" "Clock initial value: 0.000000" "Starting audio thread..." "Starting video thread..." "Starting video thread..." "get av queue a/v thread = 0x1c4433220 0x1c4430d20" "get av queue a/v thread = 0x1c4433220 0x1c4430d20" qml: playbackState=1 qml: playbackState=1 qml: internalAudioTracks.length=3 qml: internalAudioTracks.length=3 qml: status=5 qml: ---- qml: status=5 qml: ---- qml: running: true qml: player.status 5 qml: player.playbackState 1 qml: running: true qml: player.status 5 qml: player.playbackState 1 qml: ---- qml: ---- "AVClock started!!!!!!!!" "AVClock started!!!!!!!!" "delay 37628.566244s @0.000s pts:37628.566" "video too fast!!! sleep 0.00 s, nb fast: 1, v_a: 0.0000" "delay 37628.566244s @0.000s pts:37628.566" "video too fast!!! sleep 0.00 s, nb fast: 1, v_a: 0.0000" [FFmpeg:mpeg2video] Invalid frame dimensions 0x0. "[VideoDecoderFFmpegBase] Invalid data found when processing input" [FFmpeg:mpeg2video] Invalid frame dimensions 0x0. "[VideoDecoderFFmpegBase] Invalid data found when processing input" "Decode video failed. undecoded: 16046/16046" "Decode video failed. undecoded: 16046/16046" "delay 37628.606244s @0.000s pts:37628.606" "delay 37628.606244s @0.000s pts:37628.606" "video too fast!!! sleep 0.01 s, nb fast: 2, v_a: 0.0000" "video too fast!!! sleep 0.01 s, nb fast: 2, v_a: 0.0000" qml: status=6 qml: status=6 qml: ---- qml: ---- qml: running: false qml: running: false qml: player.status 6 qml: player.status 6 qml: player.playbackState 1 qml: player.playbackState 1 qml: ---- qml: ---- [FFmpeg:mpeg2video] Invalid frame dimensions 0x0. "[VideoDecoderFFmpegBase] Invalid data found when processing input" [FFmpeg:mpeg2video] Invalid frame dimensions 0x0. "[VideoDecoderFFmpegBase] Invalid data found when processing input" "Decode video failed. undecoded: 15182/15182" "Decode video failed. undecoded: 15182/15182" "delay 37628.646244s @0.000s pts:37628.766" "video too fast!!! sleep 0.01 s, nb fast: 3, v_a: 0.0000" "delay 37628.646244s @0.000s pts:37628.766" "video too fast!!! sleep 0.01 s, nb fast: 3, v_a: 0.0000" [FFmpeg:mpeg2video] Invalid frame dimensions 0x0. "[VideoDecoderFFmpegBase] Invalid data found when processing input" "Decode video failed. undecoded: 32350/32350" [FFmpeg:mpeg2video] Invalid frame dimensions 0x0. "[VideoDecoderFFmpegBase] Invalid data found when processing input" "Decode video failed. undecoded: 32350/32350" "delay 37628.686244s @0.000s pts:37628.686" "delay 37628.686244s @0.000s pts:37628.686" "video too fast!!! sleep 0.02 s, nb fast: 4, v_a: 0.0000" "video too fast!!! sleep 0.02 s, nb fast: 4, v_a: 0.0000" "Update initial clock value from audio thread\n" "Clock initial value: 37628.441389" "Update initial clock value from audio thread\n" "Clock initial value: 37628.441389" "AudioQueue is not created. skip close" "AudioQueue is not created. skip close" AudioOutput format: QtAV::AudioFormat(48000Hz, 2Bytes, channelCount:2, channelLayout: "stereo", sampleFormat: "s16") ; requested: QtAV::AudioFormat(48000Hz, 2Bytes, channelCount:2, channelLayout: "stereo", sampleFormat: "s16p") AudioOutput format: QtAV::AudioFormat(48000Hz, 2Bytes, channelCount:2, channelLayout: "stereo", sampleFormat: "s16") ; requested: QtAV::AudioFormat(48000Hz, 2Bytes, channelCount:2, channelLayout: "stereo", sampleFormat: "s16p") [FFmpeg:mpeg2video] Invalid frame dimensions 0x0. "[VideoDecoderFFmpegBase] Invalid data found when processing input" "Decode video failed. undecoded: 15366/15366" [FFmpeg:mpeg2video] Invalid frame dimensions 0x0. "[VideoDecoderFFmpegBase] Invalid data found when processing input" "Decode video failed. undecoded: 15366/15366" "Audio: Succesfully opened ao\n" "src audio parameters 'channel layout(or channels), sample rate and sample format must be set before initialize resampler" "Audio: Succesfully opened ao\n" "src audio parameters 'channel layout(or channels), sample rate and sample format must be set before initialize resampler" "swr speed=1.00" "out: {cl: 3, fmt: s16, freq: 48000}" "in {cl: 3, fmt: s16p, freq: 48000}" "swr speed=1.00" "out: {cl: 3, fmt: s16, freq: 48000}" "in {cl: 3, fmt: s16p, freq: 48000}" [FFmpeg:mpeg2video] Invalid frame dimensions 0x0. "[VideoDecoderFFmpegBase] Invalid data found when processing input" "Decode video failed. undecoded: 29502/29502" [FFmpeg:mpeg2video] Invalid frame dimensions 0x0. "[VideoDecoderFFmpegBase] Invalid data found when processing input" "Decode video failed. undecoded: 29502/29502" [FFmpeg:mpeg2video] Invalid frame dimensions 0x0. "[VideoDecoderFFmpegBase] Invalid data found when processing input" "Decode video failed. undecoded: 52942/52942" [FFmpeg:mpeg2video] Invalid frame dimensions 0x0. "[VideoDecoderFFmpegBase] Invalid data found when processing input" "Decode video failed. undecoded: 52942/52942" [FFmpeg:mpeg2video] Invalid frame dimensions 0x0. "[VideoDecoderFFmpegBase] Invalid data found when processing input" "Decode video failed. undecoded: 15974/15974" [FFmpeg:mpeg2video] Invalid frame dimensions 0x0. "[VideoDecoderFFmpegBase] Invalid data found when processing input" "Decode video failed. undecoded: 15974/15974" [FFmpeg:mpeg2video] Invalid frame dimensions 0x0. [FFmpeg:mpeg2video] Invalid frame dimensions 0x0. "[VideoDecoderFFmpegBase] Invalid data found when processing input" "[VideoDecoderFFmpegBase] Invalid data found when processing input" "Decode video failed. undecoded: 34662/34662" "Decode video failed. undecoded: 34662/34662" [FFmpeg:mpeg2video] Invalid frame dimensions 0x0. [FFmpeg:mpeg2video] Invalid frame dimensions 0x0. "[VideoDecoderFFmpegBase] Invalid data found when processing input" "Decode video failed. undecoded: 69390/69390" "[VideoDecoderFFmpegBase] Invalid data found when processing input" "Decode video failed. undecoded: 69390/69390" [FFmpeg:mpeg2video] Invalid frame dimensions 0x0. "[VideoDecoderFFmpegBase] Invalid data found when processing input" "Decode video failed. undecoded: 26190/26190" [FFmpeg:mpeg2video] Invalid frame dimensions 0x0. "[VideoDecoderFFmpegBase] Invalid data found when processing input" "Decode video failed. undecoded: 26190/26190" [FFmpeg:mpeg2video] Invalid frame dimensions 0x0. [FFmpeg:mpeg2video] Invalid frame dimensions 0x0. "[VideoDecoderFFmpegBase] Invalid data found when processing input" "[VideoDecoderFFmpegBase] Invalid data found when processing input" "Decode video failed. undecoded: 27558/27558" "Decode video failed. undecoded: 27558/27558" "available hardware decoder output format 334 (videotoolbox_vld)" "available hardware decoder output format 334 (videotoolbox_vld)" "available software decoder output format 0 (yuv420p)" "available software decoder output format 0 (yuv420p)" "AVVideotoolboxContext: 0x10bd4dd90" "AVVideotoolboxContext: 0x10bd4dd90" "Failed to init videotoolbox decoder (0xb1b4b1ab Unknown error occurred): Unknown error" "acceleration setup failure" "destroying VideoToolbox decoder" "hardware acceleration is not available" "Failed to init videotoolbox decoder (0xb1b4b1ab Unknown error occurred): Unknown error" "acceleration setup failure" "destroying VideoToolbox decoder" "hardware acceleration is not available" "no frame could be decompressed: Error number 84870 occurred 0/84870" "Frame buffer is empty." "no frame could be decompressed: Error number 84870 occurred 0/84870" "Frame buffer is empty." "invalid video frame from decoder. undecoded data size: 0" "invalid video frame from decoder. undecoded data size: 0" "no frame could be decompressed: Error number 34574 occurred 0/34574" "no frame could be decompressed: Error number 34574 occurred 0/34574" "Frame buffer is empty." "Frame buffer is empty." "invalid video frame from decoder. undecoded data size: 0" "invalid video frame from decoder. undecoded data size: 0" "no frame could be decompressed: Error number 28630 occurred 0/28630" "no frame could be decompressed: Error number 28630 occurred 0/28630" "Frame buffer is empty." "Frame buffer is empty." "invalid video frame from decoder. undecoded data size: 0" "invalid video frame from decoder. undecoded data size: 0"

wang-bin commented 6 years ago

mpeg2 hardware implementation is not supported by videotoolbox. You can patch ffmpeg to allow videotoolbox software implementation https://github.com/wang-bin/FFmpeg/commit/4394aa35792f88dabeb15897227965a1db87b64b https://github.com/wang-bin/FFmpeg/commit/7fa5f0c71d5d9732de5da5d55fcd56f683570333

Then use latest qtav code

GitHubKsti commented 6 years ago

it was a good hint but didn't worked for me. i tried building ffmpeg version 3.4 (the master didn't compile for armv7). i tried your ffmpeg branch the result is the same: with enabled videotoolbox: the picture remains black.

wang-bin commented 6 years ago

now should work. ffmpeg software decoder will be used

GitHubKsti commented 6 years ago

Thank you very much. It works but it is not the fastest solution, right? Is the software decoding of the video toolbox faster? Is there a way to deinterlace the video? I have some deinterlaced fragments in the video itself.

wang-bin commented 6 years ago

videotoolbox on macOS supports mpeg2 software decoding. i didn't compare the performance for mpeg2, but i do know videotoolbox hevc software decoding is faster than ffmpeg, so i guess it's true for mpeg2. but iOS does not support mpeg2 from the log. so the only solution is ffmpeg software decoding. deinterlaced is not implemented in qtav.

GitHubKsti commented 6 years ago

i activated AV_CODEC_ID_HEVC in VideoDecoderVideoToolboxPrivate for iOS because i read that newer A5 CPUs supports it and it worked with Hardware decoding like a sharm for our iPad Pro 12.9. On the iPad Air 2 it is really slow and more worse than the ffmpeg decoder. What to do? Possible implementing something like: Support HW-Decoder for special devices? I read that it would perform on an iPhone 6? https://www.reddit.com/r/ipad/comments/37cqjf/so_how_does_ipad_air_2_handles_next_gen_video/