-
-
Notifications
You must be signed in to change notification settings - Fork 30
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
MDK Android player Demo 播放 mov 视频时,DECODE_TO_SURFACEVIEW 1 时只有声音没有画面 #122
Comments
MDK 0.22、0.23 测试均如此 |
MOV视频:https://cowtransfer.com/s/3aeb06a8cd3d45 点击链接查看 [ 密封焊接合成.mov ] ,或访问奶牛快传 cowtransfer.com 输入传输口令 1i1qsy 查看; TS视频地址:https://cowtransfer.com/s/4dca77c535d748 点击链接查看 [ [LG.4K.演示片] 韩国女子组合20_T-ara_No.9.ts ] ,或访问奶牛快传 cowtransfer.com 输入传输口令 tthyvv 查看; |
DECODE_TO_SURFACEVIEW=0的日志也发一下 |
DECODE_TO_SURFACEVIEW=0时播放mov视频的日志
|
@wang-bin 这个现象麻烦确认下日志 |
日志看不出线索,我这边也没法复现。你用最新的包再试下贴个日志 |
Nightly Build版本(1127)播放MOV时、DECODE_TO_SURFACEVIEW = 1时的日志:
D/MDK_JNI: MDKTest:>>>>>>>>1st audio frame (after seek) rendered: 1, ao: 20, a: 0, delta: 20 +0.021333 |
libmdk.zip |
我看MediaCodecBase模块一直在报processInput failed to dequeue input buffer. try to dequeue out buffer.日志如下: 11/29 10:22:22: Launching 'app' on rockchip rk3568_r.
D/MDK_JNI: MDKTest:>>>>>>>>1st audio frame (after seek) rendered: 1, ao: 20, a: 0, delta: 20 +0.021333 |
看日志是解码除了几帧,但输出到surfaceview只有2次,不知道是不是卡住了还是什么原因。你再试下这个 |
D/MDK_JNI: MDKTest:>>>>>>>>1st audio frame (after seek) rendered: 1, ao: 20, a: 0, delta: 20 +0.021333 |
不清楚,从日志看我是调了releaseOutputBuffer把帧输出给surfaceview了,但是只调了两次没法继续,说明这两帧其实没被输出,导致无法继续解码。感觉是系统问题。所有视频都能复现?可以试试vlc的surfaceview直出模式有没有问题。 |
--- 也不是所有视频都能复现,我手里就这俩TS和MOV可以复现,其他MP4都正常。 |
方便的话发一个视频让我研究下。vlc surfaceview直出能播吗? |
可以呀,我视频发你吧。我刚试了VLC 强制关闭opengl es渲染,是正常的;强制开启和自动也是正常的。 |
视频下载: |
这是TS视频的:https://cowtransfer.com/s/ab46b5801ba54a 点击链接查看 [ [LG.4K.演示片] 韩国女子组合20_T-ara_No.9.ts ] ,或访问奶牛快传 cowtransfer.com 输入传输口令 c8kxyp 查看; 能下载吗? |
我手机上播放没问题,java=0/1, async=0/1各种组合都能正常播放。输出到surfaceview卡住感觉是系统问题。vlc的日志你发我看下 |
|
--- 看到你的回复我测试了下,AMediaCodec:java=0:async=1 可以正常播放,其他三种组合均不行。 |
最新包你用ffmpeg的mediacodec对比有没有画面,看看是否我解码器写得不对. 最新包设置surface有变化,以前传的是anativewindow,现在是surface。 p->setDecoders(MediaType::Video, {"MediaCodec", "FFmpeg"}); // MediaCodec:ndk_codec=1
auto ss = (jobject)env->NewGlobalRef(s);
p->setProperty("video.decoder", "surface=" + std::to_string((intptr_t)ss)); |
日志:
The text was updated successfully, but these errors were encountered: