ashqal / MD360Player4iOS

It is a lite library to render 360 degree panorama video for iOS. VR Player.
Apache License 2.0
770 stars 188 forks source link

IJKPlayer 开启硬解码时,有声音,没图像 #29

Open fordringd2008 opened 8 years ago

johnsonlrd commented 7 years ago

请问这个问题解决了没有呀?

aslgd commented 7 years ago

求解决方法

WLZJ commented 7 years ago

我也是,大家解决了吗

aslgd commented 7 years ago

我最近刚刚弄好,我发现是ijksdl_codec_android_mediacodec_java.c 文件里函数SDL_AMediaCodecJava_dequeueOutputBuffer 报异常,可以加个方法回调java层重置播放器选软解码

ashqal commented 7 years ago

@aslgd 这个是iOS项目...

sauntercloud commented 7 years ago

ijkplayer硬解出来是YUV420SP的,所以需要另外实现渲染。 附件中是我的实现,稍微改下就可以用

YUV420SP.zip

d6638219 commented 7 years ago

不能用啊

d6638219 commented 7 years ago

@sauntercloud

sauntercloud commented 7 years ago

@d6638219 是不能直接用,因为我自己的项目改过MD360Player4iOS,所以有些接口不太一样,需要自己稍微改下。

d6638219 commented 7 years ago

@sauntercloud GLUtil.h里 assert(programHandle != 0); programhandle=0 崩溃。 glsl.h也没有

sauntercloud commented 7 years ago

@d6638219
glsl.h 只是函数申明:

define GLSL_STRING(x) #x

const char per_pixel_fragment_shader_bitmap(); const char per_pixel_fragment_shader_yuv420p(); const char per_pixel_fragment_shader_yuv420sp(); const char per_pixel_vertex_shader();

d6638219 commented 7 years ago

@sauntercloud 有没有全一点的Demo代码。我这弄不过去了。- -,万分感谢

d6638219 commented 7 years ago

@sauntercloud NSString* path = [MDVR_RAW pathForResource:@"per_pixel_vertex_shader" ofType:@"glsl"]; return [GLUtil readRawText:path]; 这个地方我用的这个代码。但是卡在assert(programHandle != 0); 崩溃。

sauntercloud commented 7 years ago

@d6638219 shader不一样

d6638219 commented 7 years ago

@sauntercloud 加了这个 [options setPlayerOptionIntValue:1 forKey:@"videotoolbox"]; [config asVideoWithYUV420SPProvider:[MDIJKAdapter wrap:self.player.view]]; 还是没有图像

d6638219 commented 7 years ago

@sauntercloud MDVideoFrame的pixels 等于NULL

d6638219 commented 7 years ago

@sauntercloud 初始化时背景颜色是绿色的怎么换颜色

kkkView commented 6 years ago

@d6638219 你搞定了吗?我和你一样的问题

jkwang666 commented 6 years ago

@sauntercloud 按照您的方式,我集成进去,硬解播放时还是绿屏的

Zeaa commented 5 years ago

@sauntercloud 同时卡在assert(programHandle != 0) 这里了,还有 per_pixel_vertex_shader() 这个函数没有实现

Zeaa commented 5 years ago

@d6638219 测试了一个 vr 视频的 pixels 值也为 NULL,但是 ijk 的渲染并没有受影响,看到渲染应该是在 displayInternal: 方法的 [_context presentRenderbuffer:GL_RENDERBUFFER]; 处,yuv420sp_uploadTexture 这块函数没有执行