wang-bin / mdk-sdk

multimedia development kit. download:
https://sourceforge.net/projects/mdk-sdk/files/
270 stars 32 forks source link

请问mdk可以自己控制每一帧解码和渲染的时间吗 #95

Open ken626014896 opened 1 year ago

ken626014896 commented 1 year ago

想实现多台设备播放同步一个视频,达到帧同步的功能 setRenderCallback和onFrame可以实现类似的功能吗 还有想问一下onSync这个方法的含义,一直没搞懂这个方法怎么用的,是在回调里返回时间戳吗

wang-bin commented 1 year ago

解码时间不能控制,onFrame里阻塞的话就不会渲染。onSync回调返回一个同步时间,比如同步到A播放器,其他播放器可以把A的时间作为同步时间返回,另外还要同时操作播放、暂停、seek这些。不过我没写过具体例子,不知道效果怎么样

ken626014896 commented 1 year ago

android平台,发现使用onsync来控制本地视频播放时,有些视频会出现播放不了的情况,不使用onsync播放正常

W MediaServer: libpng warning: iCCP: known incorrect sRGB profile
W MediaServer: libpng warning: iCCP: known incorrect sRGB profile
D MediaServer: qml: 横屏 1920 1080
D MediaServer: "/storage/emulated/0/Download" "0|2023-05-05|b536|MD" ("0", "2023-05-05", "b536", "MD")
D MediaServer: qml: 2060-12-31
D MediaServer: read
D MediaServer: connected connected
D MediaServer: 137 incomingConnection
D MediaServer: 0 "get_dev_info" QJsonObject({"cmd":"get_dev_info"})
D MediaServer: QMap(("cmd", QVariant(QString, "get_dev_info"))("dev_id", QVariant(QString, "b5361ddd48b84686ac7d99fa239018db"))("dev_ip", QVariant(QString, "192.168.250.231"))("dev_name", QVariant(QString, "盒子")))
W libOpenSLES: Leaving Object::GetInterface (SL_RESULT_FEATURE_UNSUPPORTED)
W libOpenSLES: Leaving Object::GetInterface (SL_RESULT_FEATURE_UNSUPPORTED)
D MediaServer: init sync server 31253 31254
E mali_so : encounter the first gles_error : 0x0001; gles_state_error_info : <pname> is not an accepted value (gles2_statep_getv at hardware/rockchip/mali_so/driver/product/gles/src/state/gles2/mali_gles2_state_get.c:966)
E mali_so : encounter the first gles_error : 0x0002; gles_state_error_info : <internalformat> is not an accepted value (gles_texturep_convert_internalformat at hardware/rockchip/mali_so/driver/product/gles/src/texture/mali_gles_texture_helpers.c:200)
E mali_so : encounter the first gles_error : 0x0002; gles_state_error_info : <internalformat> is not an accepted value (gles_texturep_convert_internalformat at hardware/rockchip/mali_so/driver/product/gles/src/texture/mali_gles_texture_helpers.c:200)
D MediaServer: onStateChanged 1
D ject.pushclien: PlayerBase::PlayerBase()
D ject.pushclien: TrackPlayerBase::TrackPlayerBase()
I libOpenSLES: Emulating old channel mask behavior (ignoring positional mask 0x3, using default mask 0x3 based on channel count of 2)
W libOpenSLES: Leaving PlaybackRate::GetRateRange (SL_RESULT_PARAMETER_INVALID)
D ject.pushclien: PlayerBase::stop() from IPlayer
D AudioTrack: stop(9): called with 4096 frames delivered
D ject.pushclien: PlayerBase::stop() from IPlayer
D AudioTrack: stop(9): called with 256 frames delivered
D ject.pushclien: PlayerBase::stop() from IPlayer
D AudioTrack: stop(9): called with 256 frames delivered
D ject.pushclien: PlayerBase::stop() from IPlayer
D AudioTrack: stop(9): called with 64 frames delivered
D ject.pushclien: PlayerBase::stop() from IPlayer
D AudioTrack: stop(9): called with 256 frames delivered
D ject.pushclien: PlayerBase::stop() from IPlayer
D AudioTrack: stop(9): called with 256 frames delivered
D ject.pushclien: PlayerBase::stop() from IPlayer
D AudioTrack: stop(9): called with 256 frames delivered
I OMXClient: IOmx service obtained
D SurfaceUtils: connecting to surface 0xf4c64368, reason connectToSurface
I MediaCodec: [OMX.rk.video_decoder.vp9] setting surface generation to 2457601
D SurfaceUtils: disconnecting from surface 0xf4c64368, reason connectToSurface(reconnect)
D SurfaceUtils: connecting to surface 0xf4c64368, reason connectToSurface(reconnect)
E ACodec  : [OMX.rk.video_decoder.vp9] setPortMode on output to DynamicANWBuffer failed w/ err -1010
I ACodec  : codec does not support config priority (err -1010)
W AHierarchicalStateMachine: Warning message AMessage(what = 'omxI') = {
W AHierarchicalStateMachine:   int32_t type = 0
W AHierarchicalStateMachine:   int32_t event = 3
W AHierarchicalStateMachine:   int32_t data1 = 1
W AHierarchicalStateMachine:   int32_t data2 = 117440527
W AHierarchicalStateMachine: } unhandled in root state.
W ACodec  : setupNativeWindowSizeFormatAndUsage 1138 colorSpace 0, eDyncRange 0
D SurfaceUtils: disconnecting from surface 0xf4c64368, reason setNativeWindowSizeFormatAndUsage
D SurfaceUtils: connecting to surface 0xf4c64368, reason setNativeWindowSizeFormatAndUsage
D SurfaceUtils: set up nativeWindow 0xf4c64368 for 3840x2176, color 0x1a, rotation 0, usage 0x40002900
W ACodec  : [OMX.rk.video_decoder.vp9] BAD CODEC: Output format changed unexpectedly from (diff) AMessage(what = 0x00000000) = {
W ACodec  :       int32_t color-standard = 6
W ACodec  :     } to (diff) AMessage(what = 0x00000000) = {
W ACodec  :       int32_t color-standard = 130822
W ACodec  :     }
D ject.pushclien: PlayerBase::stop() from IPlayer
D AudioTrack: stop(9): called with 25152 frames delivered
D ject.pushclien: PlayerBase::stop() from IPlayer
D AudioTrack: stop(9): called with 128 frames delivered
I QtThread: type=1400 audit(0.0:400): avc: denied { ioctl } for path="socket:[43718]" dev="sockfs" ino=43718 ioctlcmd=0x8927 scontext=u:r:untrusted_app_27:s0:c125,c256,c512,c768 tcontext=u:r:untrusted_app_27:s0:c125,c256,c512,c768 tclass=tcp_socket permissive=1 app=org.qtproject.pushclient
D MediaServer: json error
D ject.pushclien: PlayerBase::stop() from IPlayer
D AudioTrack: stop(9): called with 191168 frames delivered

好像是音频部分出了问题, 我试着把音频禁用掉的时候 internal_player->setActiveTracks(MediaType::Audio, {}); 虽然音频部分错误没了,但是视频还是播不了 以下是禁用音频后的调试信息

W MediaServer: libpng warning: iCCP: known incorrect sRGB profile
W MediaServer: libpng warning: iCCP: known incorrect sRGB profile
D MediaServer: qml: 横屏 1920 1080
D MediaServer: "/storage/emulated/0/Download" "0|2023-05-05|b536|MD" ("0", "2023-05-05", "b536", "MD")
D MediaServer: qml: 2060-12-31
D MediaServer: read
D MediaServer: connected connected
D MediaServer: 0 "get_dev_info" QJsonObject({"cmd":"get_dev_info"})
D MediaServer: QMap(("cmd", QVariant(QString, "get_dev_info"))("dev_id", QVariant(QString, "b5361ddd48b84686ac7d99fa239018db"))("dev_ip", QVariant(QString, "192.168.250.231"))("dev_name", QVariant(QString, "盒子")))
D MediaServer: 139 incomingConnection
W libOpenSLES: Leaving Object::GetInterface (SL_RESULT_FEATURE_UNSUPPORTED)
W libOpenSLES: Leaving Object::GetInterface (SL_RESULT_FEATURE_UNSUPPORTED)
D MediaServer: init sync server 31253 31254
E mali_so : encounter the first gles_error : 0x0001; gles_state_error_info : <pname> is not an accepted value (gles2_statep_getv at hardware/rockchip/mali_so/driver/product/gles/src/state/gles2/mali_gles2_state_get.c:966)
E mali_so : encounter the first gles_error : 0x0002; gles_state_error_info : <internalformat> is not an accepted value (gles_texturep_convert_internalformat at hardware/rockchip/mali_so/driver/product/gles/src/texture/mali_gles_texture_helpers.c:200)
E mali_so : encounter the first gles_error : 0x0002; gles_state_error_info : <internalformat> is not an accepted value (gles_texturep_convert_internalformat at hardware/rockchip/mali_so/driver/product/gles/src/texture/mali_gles_texture_helpers.c:200)
D MediaServer: onStateChanged 1
I OMXClient: IOmx service obtained
D SurfaceUtils: connecting to surface 0xf4c4e2c8, reason connectToSurface
I MediaCodec: [OMX.rk.video_decoder.vp9] setting surface generation to 3065857
D SurfaceUtils: disconnecting from surface 0xf4c4e2c8, reason connectToSurface(reconnect)
D SurfaceUtils: connecting to surface 0xf4c4e2c8, reason connectToSurface(reconnect)
E ACodec  : [OMX.rk.video_decoder.vp9] setPortMode on output to DynamicANWBuffer failed w/ err -1010
I ACodec  : codec does not support config priority (err -1010)
W AHierarchicalStateMachine: Warning message AMessage(what = 'omxI') = {
W AHierarchicalStateMachine:   int32_t type = 0
W AHierarchicalStateMachine:   int32_t event = 3
W AHierarchicalStateMachine:   int32_t data1 = 1
W AHierarchicalStateMachine:   int32_t data2 = 117440527
W AHierarchicalStateMachine: } unhandled in root state.
W ACodec  : setupNativeWindowSizeFormatAndUsage 1138 colorSpace 0, eDyncRange 0
D SurfaceUtils: disconnecting from surface 0xf4c4e2c8, reason setNativeWindowSizeFormatAndUsage
D SurfaceUtils: connecting to surface 0xf4c4e2c8, reason setNativeWindowSizeFormatAndUsage
D SurfaceUtils: set up nativeWindow 0xf4c4e2c8 for 3840x2176, color 0x1a, rotation 0, usage 0x40002900
W ACodec  : [OMX.rk.video_decoder.vp9] BAD CODEC: Output format changed unexpectedly from (diff) AMessage(what = 0x00000000) = {
W ACodec  :       int32_t color-standard = 6
W ACodec  :     } to (diff) AMessage(what = 0x00000000) = {
W ACodec  :       int32_t color-standard = 130822
W ACodec  :     }
I QtThread: type=1400 audit(0.0:459): avc: denied { ioctl } for path="socket:[54355]" dev="sockfs" ino=54355 ioctlcmd=0x8927 scontext=u:r:untrusted_app_27:s0:c125,c256,c512,c768 tcontext=u:r:untrusted_app_27:s0:c125,c256,c512,c768 tclass=tcp_socket permissive=1 app=org.qtproject.pushclient
D MediaServer: json error
wang-bin commented 1 year ago

 你发下完整的log,只要当前app的

ken626014896 commented 1 year ago

目前不知道为什么复现不了,= =,之前是通过等待播放器状态为State::Playing时,再开始改变onSync的回调函数返回值,来解决的,不知道这种用法是否合理

ken626014896 commented 1 year ago

问题复现了,

D MediaServer: 116 "add_plugin" QJsonObject({"cmd":"add_plugin","plugin":{"hh":1,"id":"b499caa13a8e4d9ea17574d165a417bc","level":2,"name":"4K Istanbul City.webm","open_sync":true,"pos_list":[3],"resource_id":"b20c98801f1dae4e2cbf3dd846732b2b","sync_num":4,"type":0,"type_name":"视频","vol":5,"ww":4,"xx":-3,"yy":0}})
W MediaServer: qrc:/MdkPlaySync.qml:112: ReferenceError: $manager is not defined
D MediaServer: 116 "update_plugin" QJsonObject({"cmd":"update_plugin","id":"b499caa13a8e4d9ea17574d165a417bc","pos_data":{"height":1,"ii":3,"index":0,"open_sync":true,"sync_num":4,"width":4,"x":-3,"y":0}})
D MediaServer: 116 "begain_sync_signal" QJsonObject({"cmd":"begain_sync_signal","id":"b499caa13a8e4d9ea17574d165a417bc","sync_num":4})
W MediaServer: qrc:/LoaderView.qml:175: ReferenceError: dmId is not defined
D MediaServer: qml: test b499caa13a8e4d9ea17574d165a417bc 4 true 4
D MediaServer: qml: old true 4
D MediaServer: qml: now true 4
D MediaServer: qml: source qrc:/MdkPlaySync.qml
W MediaServer: qrc:/LoaderView.qml:191: TypeError: Cannot call method 'stop_play_sync' of null
D MediaServer: MDK-JNI default0xe8086190 new FrameReader...
05-12 09:16:37.674 31511 31540 D MediaServer:
D MediaServer: MDK-JNI Registered audio backends: OpenSL AudioTrack null
05-12 09:16:37.674 31511 31540 D MediaServer:
W libOpenSLES: Leaving Object::GetInterface (SL_RESULT_FEATURE_UNSUPPORTED)
D MediaServer: MDK-JNI OpenSL extensions: ANDROID_SDK_LEVEL_30
D MediaServer: MDK-JNI default0xe8085290 new FrameReader...
05-12 09:16:37.675 31511 31540 D MediaServer:
D MediaServer: MDK-JNI Registered audio backends: OpenSL AudioTrack null
05-12 09:16:37.675 31511 31540 D MediaServer:
W libOpenSLES: Leaving Object::GetInterface (SL_RESULT_FEATURE_UNSUPPORTED)
D MediaServer: MDK-JNI OpenSL extensions: ANDROID_SDK_LEVEL_30
D MediaServer: MDK-JNI 0xec8d67b0mdk::Player::Player()
05-12 09:16:37.675 31511 31540 D MediaServer:
D MediaServer: MDK-JNI 0.20.0 (git be9e99d) - Multimedia Development Kit. Copyright (c) 2016-2023 WangBin(QtAV author) <wbsecg1 at gmail.com>
D MediaServer: Build for: Android19 ARMv7; Clang14.0.7 (https://android.googlesource.com/toolchain/llvm-project 4c603efb0cca074e9238af8b4106c30add4418f6)GCC4.2.1; libc++11000; 08:16:54 Apr 27 2023
05-12 09:16:37.676 31511 31540 D MediaServer:
05-12 09:16:37.676 31511 31540 D MediaServer:
D MediaServer: MDK-JNI 0xec7c9010 virtual void mdk::MediaControlPush::setState(mdk::PlaybackState)@952 requested state 0=>0, current state 0. status: 0
05-12 09:16:37.683 31511 31540 D MediaServer:
D MediaServer: MDK-JNI default FrameReader0xe8086190 state: 0=>0=>0, 0
05-12 09:16:37.683 31511 31540 D MediaServer:
D MediaServer: MDK-JNI default0xe8086190 virtual void mdk::FrameReader::stop(), current state: 0
05-12 09:16:37.683 31511 31540 D MediaServer:
D MediaServer: MDK-JNI default FrameReader0xe8086190 state: 0=>0=>0, 0
05-12 09:16:37.683 31511 31540 D MediaServer:
D MediaServer: MDK-JNI default0xe8086190 virtual void mdk::FrameReader::stop(), current state: 0
05-12 09:16:37.683 31511 31540 D MediaServer:
D MediaServer: MDK-JNI 0xec7c9010 virtual void mdk::MediaControlPush::setState(mdk::PlaybackState)@952 requested state 0=>1, current state 0. status: 0
05-12 09:16:37.683 31511 31540 D MediaServer:
D MediaServer: MDK-JNI default 0xe8086190 FrameReader.start(0, ...)
05-12 09:16:37.684 31511 31540 D MediaServer:
D MediaServer: MDK-JNI default 0xe8086190 FrameReader::update MediaStatus 0=>0X2
05-12 09:16:37.684 31511 31540 D MediaServer:
D MediaServer: MDK-JNI default FrameReader0xe8086190 state: 0=>0=>1, 0
05-12 09:16:37.684 31511 31540 D MediaServer:
D MediaServer: MDK-JNI default FrameReader0xe8086190 state: 0=>1=>1, 0
05-12 09:16:37.684 31511 31540 D MediaServer:
D MediaServer: MDK-JNI start frame reader thread: -1378111040
05-12 09:16:37.685 31511 31637 D MediaServer:
D MediaServer: MDK-JNI Trying MediaIO FFmpeg for protocol "file"
05-12 09:16:37.685 31511 31637 D MediaServer:
D MediaServer: MDK-JNI 0xaf26f5f0 open url: file:///storage/emulated/0/Download/data/4K Istanbul City.webm
05-12 09:16:37.686 31511 31637 D MediaServer:
D MediaServer: MDK-JNI 0xaf26f5f0 url opened
05-12 09:16:37.687 31511 31637 D MediaServer:
D MediaServer: MDK-JNI default 0xe8086190 FrameReader::update MediaStatus 0X2=>0X2
05-12 09:16:37.687 31511 31637 D MediaServer:
D MediaServer: MDK-JNI before avformat_open_input. io: 0xaf26f5f0(FFmpeg/pb: 0xecd6f090, url: file:///storage/emulated/0/Download/data/4K Istanbul City.webm
05-12 09:16:37.687 31511 31637 D MediaServer:
D MediaServer: MDK-JNI after avformat_open_input. pb: 0xecd6f090, iformat: 0xbad72fd8 context flags: 2097280, input format flags: 0
05-12 09:16:37.688 31511 31637 D MediaServer:
D MediaServer: MDK-JNI new OpenGLVideo 0xb7e1eeb0 in ctx 0xb1e95150
05-12 09:16:37.690 31511 31586 D MediaServer:
D MediaServer: MDK-JNI mdk::GLVideoRenderer::Private::DeferredDeleter::~DeferredDeleter() delete previous OpenGLVideo 0xb365a890
05-12 09:16:37.691 31511 31586 D MediaServer:
D MediaServer: MDK-JNI cleanup shader cache
05-12 09:16:37.691 31511 31586 D MediaServer:
D MediaServer: MDK-JNI unknown, bpc:0, bpp:0(), channels:(), map: 0 0 0 0 => unknown, bpc:0, bpp:0(), channels:(), map: 0 0 0 0
05-12 09:16:37.691 31511 31586 D MediaServer:
D MediaServer: MDK-JNI 0xb1e95150/0xb396ec80 Context::setLocalData local data 0xae181790 for key: 0x4. size: 4
05-12 09:16:37.691 31511 31586 D MediaServer:
D MediaServer: MDK-JNI failed to bind video material
05-12 09:16:37.691 31511 31586 D MediaServer:
D MediaServer: MDK-JNI Format: matroska,webm, range: 0 +200507ms, bitrate: 14904992, size: 0
D MediaServer: Metadata:
D MediaServer:   encoder: Lavf57.71.100
D MediaServer: Streams: 2
D MediaServer:  Video:
D MediaServer:   stream#0, range: 3 +0ms, frames: 0
D MediaServer:   codec: vp9 tag: 0 profile: 0 level: -99, yuv420p, bpc:8, bpp:12(8,8,8), channels:(1,1,1), map: 0 1 2 0, bitrate: 0, 3840x2160, fps: 25, bframes: 0, matrix: bt709, range: narrow
D MediaServer:   Metadata:
D MediaServer:    language: eng
D MediaServer:  Audio:
D MediaServer:   stream#1, range: 0 +0ms, frames: 0
D MediaServer:   codec: vorbis tag: 0 profile: -99 level: -99, sample size: 0/32, block align: 0, frame_size: 0, f32p stereo(2) @44100Hz, bitrate: 0
D MediaServer:   extra data(3950): 02 1E 55 01 76 6F 72 62 69 73 00 00 00 00 02 44 AC 00 00 00 00 00 00 80 B5 01 00 00 00 00 00 B8 01 03 76 6F 72 62 69 73 2C 00 00 00 58 69 70 68 2E 4F 72 67 20 6C 69 62 56 6F 72 62 69 73 20 49 20 32 30 31 35 30 31 30 35 20 28 E2 9B 84 E2 9B 84 E2 9B 84 E2 9B 84 29 01 00 00 00 15 00 00 00 65 6E 63 6F 64 65 72 3D 4C 61 76 63 35 37 2E 38 39 2E 31 30 30 01 05 76 6F 72 62 69 73 25 42 43 56 01 00 40 00 00 24 73 18 2A 46 A5 73 16 84 10 1A 42 50 19 E3
D MediaServer: MDK-JNI default 0xe8086190 FrameReader::update MediaStatus 0X2=>0X4
05-12 09:16:37.744 31511 31637 D MediaServer:
D MediaServer: MDK-JNI ***buffering progress 0%***
05-12 09:16:37.744 31511 31637 D MediaServer:
D MediaServer: MDK-JNI default 0xe8086190 FrameReader::update MediaStatus 0X4=>0X14
05-12 09:16:37.744 31511 31637 D MediaServer:
D MediaServer: MDK-JNI ++++++++++++BUFFERING START++++++++++++
05-12 09:16:37.744 31511 31637 D MediaServer:
D MediaServer: MDK-JNI
D MediaServer: MDK-JNI default FrameReader0xe8086190 state: 0=>1=>1, 1
05-12 09:16:37.744 31511 31637 D MediaServer:
D MediaServer: MDK-JNI default FrameReader0xe8086190 update state: 0=>1
05-12 09:16:37.744 31511 31637 D MediaServer:
D MediaServer: ======onStateChanged 0 1
D MediaServer: MDK-JNI starting decode loop thread mdk.vdec0@-1380204096
05-12 09:16:37.745 31511 31638 D MediaServer:
D MediaServer: MDK-JNI video stream#0 starting decoding loop from decoder index 0...
05-12 09:16:37.745 31511 31638 D MediaServer:
D MediaServer: MDK-JNI creating video decoder: AMediaCodec:java=0:copy=0:surface=1:async=0:image=1...
05-12 09:16:37.746 31511 31638 D MediaServer:
D MediaServer: MDK-JNI opening video decoder: AMediaCodec...
05-12 09:16:37.746 31511 31638 D MediaServer:
D MediaServer: MDK-JNI CodecForMimeType: video/x-vnd.on2.vp9, profile: 1, level: -1
05-12 09:16:37.746 31511 31638 D MediaServer:
D MediaServer: MDK-JNI -1380204096 JMI: JNI Modern Interface. Version 0.1.0
05-12 09:16:37.746 31511 31638 D MediaServer:
05-12 09:16:37.746 31511 31638 D MediaServer:
D MediaServer: MDK-JNI MediaCodecInfo name: c2.android.aac.decoder, mime: audio/mp4a-latm
05-12 09:16:37.747 31511 31638 D MediaServer:
D MediaServer: MDK-JNI MediaCodecInfo name: OMX.google.aac.decoder, mime: audio/mp4a-latm
05-12 09:16:37.747 31511 31638 D MediaServer:
D MediaServer: MDK-JNI MediaCodecInfo name: c2.android.amrnb.decoder, mime: audio/3gpp
05-12 09:16:37.748 31511 31638 D MediaServer:
D MediaServer: MDK-JNI MediaCodecInfo name: OMX.google.amrnb.decoder, mime: audio/3gpp
05-12 09:16:37.748 31511 31638 D MediaServer:
D MediaServer: MDK-JNI MediaCodecInfo name: c2.android.amrwb.decoder, mime: audio/amr-wb
05-12 09:16:37.748 31511 31638 D MediaServer:
D MediaServer: MDK-JNI MediaCodecInfo name: OMX.google.amrwb.decoder, mime: audio/amr-wb
05-12 09:16:37.749 31511 31638 D MediaServer:
D MediaServer: MDK-JNI MediaCodecInfo name: c2.android.flac.decoder, mime: audio/flac
05-12 09:16:37.749 31511 31638 D MediaServer:
D MediaServer: MDK-JNI MediaCodecInfo name: OMX.google.flac.decoder, mime: audio/flac
05-12 09:16:37.749 31511 31638 D MediaServer:
D MediaServer: MDK-JNI MediaCodecInfo name: c2.android.g711.alaw.decoder, mime: audio/g711-alaw
05-12 09:16:37.749 31511 31638 D MediaServer:
D MediaServer: MDK-JNI MediaCodecInfo name: OMX.google.g711.alaw.decoder, mime: audio/g711-alaw
05-12 09:16:37.750 31511 31638 D MediaServer:
D MediaServer: MDK-JNI MediaCodecInfo name: c2.android.g711.mlaw.decoder, mime: audio/g711-mlaw
05-12 09:16:37.750 31511 31638 D MediaServer:
D MediaServer: MDK-JNI MediaCodecInfo name: OMX.google.g711.mlaw.decoder, mime: audio/g711-mlaw
05-12 09:16:37.750 31511 31638 D MediaServer:
D MediaServer: MDK-JNI MediaCodecInfo name: c2.android.mp3.decoder, mime: audio/mpeg
05-12 09:16:37.751 31511 31638 D MediaServer:
D MediaServer: MDK-JNI MediaCodecInfo name: OMX.google.mp3.decoder, mime: audio/mpeg
05-12 09:16:37.751 31511 31638 D MediaServer:
D MediaServer: MDK-JNI MediaCodecInfo name: c2.android.opus.decoder, mime: audio/opus
05-12 09:16:37.751 31511 31638 D MediaServer:
D MediaServer: MDK-JNI MediaCodecInfo name: OMX.google.opus.decoder, mime: audio/opus
05-12 09:16:37.751 31511 31638 D MediaServer:
D MediaServer: MDK-JNI MediaCodecInfo name: c2.android.raw.decoder, mime: audio/raw
05-12 09:16:37.752 31511 31638 D MediaServer:
D MediaServer: MDK-JNI MediaCodecInfo name: OMX.google.raw.decoder, mime: audio/raw
05-12 09:16:37.752 31511 31638 D MediaServer:
D MediaServer: MDK-JNI MediaCodecInfo name: c2.android.vorbis.decoder, mime: audio/vorbis
05-12 09:16:37.753 31511 31638 D MediaServer:
D MediaServer: MDK-JNI MediaCodecInfo name: OMX.google.vorbis.decoder, mime: audio/vorbis
05-12 09:16:37.753 31511 31638 D MediaServer:
D MediaServer: MDK-JNI MediaCodecInfo name: OMX.rk.video_decoder.avc, mime: video/avc
05-12 09:16:37.753 31511 31638 D MediaServer:
D MediaServer: MDK-JNI MediaCodecInfo name: OMX.rk.video_decoder.h263, mime: video/3gpp
05-12 09:16:37.754 31511 31638 D MediaServer:
D MediaServer: MDK-JNI MediaCodecInfo name: OMX.rk.video_decoder.hevc, mime: video/hevc
05-12 09:16:37.754 31511 31638 D MediaServer:
D MediaServer: MDK-JNI MediaCodecInfo name: OMX.rk.video_decoder.m4v, mime: video/mp4v-es
05-12 09:16:37.754 31511 31638 D MediaServer:
D MediaServer: MDK-JNI MediaCodecInfo name: OMX.rk.video_decoder.vp8, mime: video/x-vnd.on2.vp8
05-12 09:16:37.754 31511 31638 D MediaServer:
D MediaServer: MDK-JNI MediaCodecInfo name: OMX.rk.video_decoder.vp9, mime: video/x-vnd.on2.vp9 video/x-vnd.on2.vp9 -profile: 1
05-12 09:16:37.754 31511 31638 D MediaServer:
D MediaServer: MDK-JNI profileLevels count: 4
05-12 09:16:37.755 31511 31638 D MediaServer:
D MediaServer: MDK-JNI profile: 1 level: 512
05-12 09:16:37.755 31511 31638 D MediaServer:
D MediaServer: MDK-JNI  [Match].
05-12 09:16:37.755 31511 31638 D MediaServer:
D MediaServer: MDK-JNI MediaCodecInfo name: c2.android.avc.decoder, mime: video/avc
05-12 09:16:37.756 31511 31638 D MediaServer:
D MediaServer: MDK-JNI MediaCodecInfo name: OMX.google.h264.decoder, mime: video/avc
05-12 09:16:37.756 31511 31638 D MediaServer:
D MediaServer: MDK-JNI MediaCodecInfo name: c2.android.h263.decoder, mime: video/3gpp
05-12 09:16:37.756 31511 31638 D MediaServer:
D MediaServer: MDK-JNI MediaCodecInfo name: OMX.google.h263.decoder, mime: video/3gpp
05-12 09:16:37.757 31511 31638 D MediaServer:
D MediaServer: MDK-JNI MediaCodecInfo name: c2.android.hevc.decoder, mime: video/hevc
05-12 09:16:37.757 31511 31638 D MediaServer:
D MediaServer: MDK-JNI MediaCodecInfo name: OMX.google.hevc.decoder, mime: video/hevc
05-12 09:16:37.757 31511 31638 D MediaServer:
D MediaServer: MDK-JNI MediaCodecInfo name: c2.android.mpeg4.decoder, mime: video/mp4v-es
05-12 09:16:37.757 31511 31638 D MediaServer:
D MediaServer: MDK-JNI MediaCodecInfo name: OMX.google.mpeg4.decoder, mime: video/mp4v-es
05-12 09:16:37.758 31511 31638 D MediaServer:
D MediaServer: MDK-JNI MediaCodecInfo name: c2.android.vp8.decoder, mime: video/x-vnd.on2.vp8
05-12 09:16:37.758 31511 31638 D MediaServer:
D MediaServer: MDK-JNI MediaCodecInfo name: OMX.google.vp8.decoder, mime: video/x-vnd.on2.vp8
05-12 09:16:37.758 31511 31638 D MediaServer:
D MediaServer: MDK-JNI MediaCodecInfo name: c2.android.vp9.decoder, mime: video/x-vnd.on2.vp9 video/x-vnd.on2.vp9 -profile: 1
05-12 09:16:37.759 31511 31638 D MediaServer:
D MediaServer: MDK-JNI MediaCodecInfo::VideoCapabilities.isSizeSupported() is false:
05-12 09:16:37.759 31511 31638 D MediaServer:
D MediaServer: MDK-JNI profileLevels count: 4
05-12 09:16:37.760 31511 31638 D MediaServer:
D MediaServer: MDK-JNI profile: 1 level: 256
05-12 09:16:37.760 31511 31638 D MediaServer:
D MediaServer: MDK-JNI  [Match].
05-12 09:16:37.760 31511 31638 D MediaServer:
D MediaServer: MDK-JNI MediaCodecInfo name: OMX.google.vp9.decoder, mime: video/x-vnd.on2.vp9 video/x-vnd.on2.vp9 -profile: 1
05-12 09:16:37.760 31511 31638 D MediaServer:
D MediaServer: MDK-JNI MediaCodecInfo::VideoCapabilities.isSizeSupported() is false:
05-12 09:16:37.761 31511 31638 D MediaServer:
D MediaServer: MDK-JNI profileLevels count: 4
05-12 09:16:37.761 31511 31638 D MediaServer:
D MediaServer: MDK-JNI profile: 1 level: 256
05-12 09:16:37.761 31511 31638 D MediaServer:
D MediaServer: MDK-JNI  [Match].
05-12 09:16:37.761 31511 31638 D MediaServer:
D MediaServer: MDK-JNI found codecs count: 3 | 0
05-12 09:16:37.761 31511 31638 D MediaServer:
D MediaServer: MDK-JNI video/x-vnd.on2.vp9 AMediaCodec_createCodecByName: OMX.rk.video_decoder.vp9
05-12 09:16:37.761 31511 31638 D MediaServer:
D MediaServer: MDK-JNI ndk::AMediaCodec *ndk::AMediaCodec_createCodecByName(const char *) via ndk: true
05-12 09:16:37.761 31511 31638 D MediaServer:
I OMXClient: IOmx service obtained
D MediaServer: MDK-JNI using AImageReader: true
05-12 09:16:37.772 31511 31638 D MediaServer:
D SurfaceUtils: connecting to surface 0xecbb2618, reason connectToSurface
I MediaCodec: [OMX.rk.video_decoder.vp9] setting surface generation to 32267266
D SurfaceUtils: disconnecting from surface 0xecbb2618, reason connectToSurface(reconnect)
D SurfaceUtils: connecting to surface 0xecbb2618, reason connectToSurface(reconnect)
E ACodec  : [OMX.rk.video_decoder.vp9] setPortMode on output to DynamicANWBuffer failed w/ err -1010
I ACodec  : codec does not support config priority (err -1010)
W AHierarchicalStateMachine: Warning message AMessage(what = 'omxI') = {
W AHierarchicalStateMachine:   int32_t type = 0
W AHierarchicalStateMachine:   int32_t event = 3
W AHierarchicalStateMachine:   int32_t data1 = 1
W AHierarchicalStateMachine:   int32_t data2 = 117440527
W AHierarchicalStateMachine: } unhandled in root state.
D MediaServer: MDK-JNI AMediaCodec selected video codec name: OMX.rk.video_decoder.vp9
05-12 09:16:37.781 31511 31638 D MediaServer:
W ACodec  : setupNativeWindowSizeFormatAndUsage 1138 colorSpace 0, eDyncRange 0
D SurfaceUtils: disconnecting from surface 0xecbb2618, reason setNativeWindowSizeFormatAndUsage
D SurfaceUtils: connecting to surface 0xecbb2618, reason setNativeWindowSizeFormatAndUsage
D SurfaceUtils: set up nativeWindow 0xecbb2618 for 3840x2176, color 0x1a, rotation 0, usage 0x40002900
D MediaServer: MDK-JNI decode stored recovery packets: 0
05-12 09:16:37.837 31511 31638 D MediaServer:
D MediaServer: MDK-JNI ***buffering progress 100%***
05-12 09:16:37.837 31511 31638 D MediaServer:
D MediaServer: MDK-JNI default 0xe8086190 FrameReader::update MediaStatus 0X14=>0X124
05-12 09:16:37.837 31511 31638 D MediaServer:
D MediaServer: MDK-JNI ++++++++++++BUFFERING END++++++++++++
05-12 09:16:37.837 31511 31638 D MediaServer:
D MediaServer: MDK-JNI
W ACodec  : [OMX.rk.video_decoder.vp9] BAD CODEC: Output format changed unexpectedly from (diff) AMessage(what = 0x00000000) = {
W ACodec  :       int32_t color-standard = 6
W ACodec  :     } to (diff) AMessage(what = 0x00000000) = {
W ACodec  :       int32_t color-standard = 130822
W ACodec  :     }
D MediaServer: MDK-JNI AMEDIACODEC_INFO_OUTPUT_FORMAT_CHANGED
05-12 09:16:37.879 31511 31638 D MediaServer:
D MediaServer: MDK-JNI MediaFormat: color-range: int32(2), color-standard: int32(130822), color-transfer: int32(3), mime: string(video/raw), stride: int32(3840), slice-height: int32(2176), color-format: int32(26), crop: Rect(0, 0, 3839, 2159), android._dataspace: int32(281411584), width: int32(3840), height: int32(2176)}
05-12 09:16:37.880 31511 31638 D MediaServer:
D MediaServer: MDK-JNI unknown, bpc:0, bpp:0(), channels:(), map: 0 0 0 0
05-12 09:16:37.880 31511 31638 D MediaServer:
D MediaServer: MDK-JNI size: 3840x2160, bytes: 3840x2176
05-12 09:16:37.880 31511 31638 D MediaServer:
D MediaServer: MDK-JNI video stream#0 sending 1 invalid AOT frame @0.003000s. seeking: 0
05-12 09:16:37.888 31511 31638 D MediaServer:
D MediaServer: MDK-JNI 0xec7c9010 1st video frame to render @0.003000s, sync time: 0.051000
05-12 09:16:37.889 31511 31638 D MediaServer:
D MediaServer: MDK-JNI VideoRenderer clear buffered frames
05-12 09:16:37.889 31511 31638 D MediaServer:
D MediaServer: MDK-JNI 0-track seek end video frame @0.003000 seek_pos_: -1
05-12 09:16:37.889 31511 31638 D MediaServer:
D MediaServer: MDK-JNI >3 00:00:00.0/00:03:20 cache 14.7s/16959KB 0KB/s diff |+0|<16ms update infms
05-12 09:16:37.889 31511 31638 D MediaServer:
D MediaServer: MDK-JNI video stream#0 AOT frame is sent
05-12 09:16:37.889 31511 31638 D MediaServer:
D MediaServer: MDK-JNI VideoRenderer WxH=7680.000000x1080.000000 7680.000000x1080.000000, frame: 3840x2160
05-12 09:16:37.895 31511 31586 D MediaServer:
D MediaServer: MDK-JNI update transform 2d. scale: (1.000000, 1.000000), orientation: 0
05-12 09:16:37.895 31511 31586 D MediaServer:
D MediaServer: MDK-JNI m: mat<4, 4>(
05-12 09:16:37.895 31511 31586 D MediaServer:
D MediaServer: MDK-JNI 1  0  0  0
05-12 09:16:37.895 31511 31586 D MediaServer:
D MediaServer: MDK-JNI 0  1  0  0
05-12 09:16:37.895 31511 31586 D MediaServer:
D MediaServer: MDK-JNI 0  0  1  0
05-12 09:16:37.895 31511 31586 D MediaServer:
D MediaServer: MDK-JNI 0  0  0  1
05-12 09:16:37.895 31511 31586 D MediaServer:
D MediaServer: MDK-JNI )
05-12 09:16:37.895 31511 31586 D MediaServer:
D MediaServer: MDK-JNI 0xb1e95150/0xb396ec80 Context::setLocalData local data 0xae1802a0 for key: 0x6. size: 5
05-12 09:16:37.896 31511 31586 D MediaServer:
D MediaServer: MDK-JNI AHardwareBuffer from AImageReader Surface to EGLImage
05-12 09:16:37.896 31511 31586 D MediaServer:
D MediaServer: MDK-JNI unknown, bpc:0, bpp:0(), channels:(), map: 0 0 0 0 => mapped rgba, bpc:8, bpp:32(32), channels:(4), map: 0 1 2 3
05-12 09:16:37.898 31511 31586 D MediaServer:
D MediaServer: MDK-JNI  RGBA8 |  RGBA | UNSIGNED_BYTE
05-12 09:16:37.898 31511 31586 D MediaServer:
D MediaServer: MDK-JNI frame color: bt709 bt709 bt709 narrow. gamma: 2.200000, signal peak: 1.000000
05-12 09:16:37.899 31511 31586 D MediaServer:
D MediaServer: MDK-JNI  -
05-12 09:16:37.899 31511 31586 D MediaServer:
D MediaServer: MDK-JNI output color: bt709 unknown unknown full. gamma: 2.200000, signal peak: 1.000000
05-12 09:16:37.899 31511 31586 D MediaServer:
D MediaServer: MDK-JNI rgb primaries matrix: mat<3, 3>(
05-12 09:16:37.899 31511 31586 D MediaServer:
D MediaServer: MDK-JNI 1  0  0
05-12 09:16:37.899 31511 31586 D MediaServer:
D MediaServer: MDK-JNI 0  1  0
05-12 09:16:37.900 31511 31586 D MediaServer:
D MediaServer: MDK-JNI 0  0  1
05-12 09:16:37.900 31511 31586 D MediaServer:
D MediaServer: MDK-JNI )
05-12 09:16:37.900 31511 31586 D MediaServer:
D MediaServer: MDK-JNI color transform: mat<4, 4>(
05-12 09:16:37.900 31511 31586 D MediaServer:
D MediaServer: MDK-JNI 1  0  0  0
05-12 09:16:37.900 31511 31586 D MediaServer:
D MediaServer: MDK-JNI 0  1  0  0
05-12 09:16:37.900 31511 31586 D MediaServer:
D MediaServer: MDK-JNI 0  0  1  0
05-12 09:16:37.900 31511 31586 D MediaServer:
D MediaServer: MDK-JNI 0  0  0  1
05-12 09:16:37.901 31511 31586 D MediaServer:
D MediaServer: MDK-JNI )
05-12 09:16:37.901 31511 31586 D MediaServer:
D MediaServer: MDK-JNI EQ: mat<4, 4>(
05-12 09:16:37.901 31511 31586 D MediaServer:
D MediaServer: MDK-JNI 1  0  0  0
05-12 09:16:37.901 31511 31586 D MediaServer:
D MediaServer: MDK-JNI 0  1  0  0
05-12 09:16:37.901 31511 31586 D MediaServer:
D MediaServer: MDK-JNI 0  0  1  0
05-12 09:16:37.901 31511 31586 D MediaServer:
D MediaServer: MDK-JNI 0  0  0  1
05-12 09:16:37.901 31511 31586 D MediaServer:
D MediaServer: MDK-JNI )
05-12 09:16:37.902 31511 31586 D MediaServer:
D MediaServer: MDK-JNI material changed: 0x0=>0x90a
05-12 09:16:37.902 31511 31586 D MediaServer:
D MediaServer: MDK-JNI planar: 0, alpha: 1, texture 2d: 0, external: 1, rg semi-planar: 0, 16=>8: 0, xyz: 0, generic packed yuv: 0, cocgsy: 0, primaries diff: 0, trc: 1=>1, tone map: 0
05-12 09:16:37.902 31511 31586 D MediaServer:
D MediaServer: MDK-JNI bind attribute: a_Position => 0
05-12 09:16:37.903 31511 31586 D MediaServer:
D MediaServer: MDK-JNI bind attribute: a_TexCoords0 => 1
05-12 09:16:37.903 31511 31586 D MediaServer:
D MediaServer: MDK-JNI uniform locations:
05-12 09:16:37.905 31511 31586 D MediaServer:
D MediaServer: MDK-JNI u_Texture0: 0
05-12 09:16:37.905 31511 31586 D MediaServer:
D MediaServer: MDK-JNI u_Matrix: 2, u_TexMatrix: 1
05-12 09:16:37.905 31511 31586 D MediaServer:
D MediaServer: MDK-JNI update built-in uniforms
05-12 09:16:37.905 31511 31586 D MediaServer:
D MediaServer: MDK-JNI EQ: mat<4, 4>(
05-12 09:16:37.905 31511 31586 D MediaServer:
D MediaServer: MDK-JNI 1  0  0  0
05-12 09:16:37.905 31511 31586 D MediaServer:
D MediaServer: MDK-JNI 0  1  0  0
05-12 09:16:37.906 31511 31586 D MediaServer:
D MediaServer: MDK-JNI 0  0  1  0
05-12 09:16:37.906 31511 31586 D MediaServer:
D MediaServer: MDK-JNI 0  0  0  1
05-12 09:16:37.906 31511 31586 D MediaServer:
D MediaServer: MDK-JNI )
05-12 09:16:37.906 31511 31586 D MediaServer:
D MediaServer: MDK-JNI uniform cb.u_colorMatrix: 3
05-12 09:16:37.906 31511 31586 D MediaServer:
D MediaServer: MDK-JNI uniform cb.u_ScaleA: 4
05-12 09:16:37.906 31511 31586 D MediaServer:
D MediaServer: MDK-JNI creating vbo...
05-12 09:16:37.906 31511 31586 D MediaServer:
D MediaServer: MDK-JNI creating vao...
05-12 09:16:37.906 31511 31586 D MediaServer:
D MediaServer: MDK-JNI >43 00:00:00.0/00:03:20 cache 14.6s/16942KB 0KB/s diff |-10|<16ms update 2285.0ms
05-12 09:16:40.174 31511 31638 D MediaServer:
D MediaServer: MDK-JNI >163 00:00:00.1/00:03:20 cache 14.5s/16881KB 0KB/s diff |-10|<16ms update 598.5ms 20.9fps draw 4/11 +438ms gpu 67920/71198us
05-12 09:16:40.283 31511 31638 D MediaServer:
D MediaServer: MDK-JNI >283 00:00:00.2/00:03:20 cache 14.4s/16860KB 0KB/s diff |-20|>16ms update 360.4ms 16.0fps draw 4/11 +361ms gpu 70131/74554us
05-12 09:16:40.412 31511 31638 D MediaServer:
D MediaServer: MDK-JNI >403 00:00:00.4/00:03:20 cache 14.3s/16845KB 0KB/s diff |-10|<16ms update 263.2ms 22.6fps draw 3/11 +282ms gpu 43611/74554us
05-12 09:16:40.521 31511 31638 D MediaServer:
D MediaServer: MDK-JNI >523 00:00:00.5/00:03:20 cache 14.2s/16715KB 0KB/s diff |-10|<16ms update 211.7ms 24.0fps draw 3/11 +239ms gpu 36572/74554us
05-12 09:16:40.641 31511 31638 D MediaServer:
D MediaServer: MDK-JNI >643 00:00:00.6/00:03:20 cache 14.1s/16681KB 0KB/s diff |-10|<16ms update 39.1ms 23.8fps draw 2/11 +224ms gpu 32364/74554us
05-12 09:16:40.761 31511 31638 D MediaServer:
D MediaServer: MDK-JNI >763 00:00:00.7/00:03:20 cache 14.0s/16646KB 0KB/s diff |-10|<16ms update 39.9ms 24.0fps draw 2/3 +84ms gpu 29751/74554us
05-12 09:16:40.881 31511 31638 D MediaServer:
D MediaServer: MDK-JNI >883 00:00:00.8/00:03:20 cache 13.8s/16621KB 0KB/s diff |-10|<16ms update 39.3ms 26.6fps draw 2/3 +85ms gpu 20097/35997us
05-12 09:16:41.001 31511 31638 D MediaServer:
D MediaServer: MDK-JNI >1002 00:00:01.0/00:03:20 cache 13.7s/16439KB 0KB/s diff |+0|<16ms update 39.3ms 25.4fps draw 1/3 +84ms gpu 18871/20398us
05-12 09:16:41.111 31511 31638 D MediaServer:

下面是那个视频的参数 image

wang-bin commented 1 year ago

log看上去没问题啊,是什么现象?期望是怎么样的?

ken626014896 commented 1 year ago

播放器直接卡死了,目前通过把视频转码成MP4解决了,原本格式是webm

wang-bin commented 1 year ago

只是转封装成mp4?这很奇怪

ken626014896 commented 1 year ago

嗯,就用格式工厂转了一下