Closed hsinor closed 2 years ago
@hsinor 有测试地址吗,我回归看下。
目前没有测试地址,都是在自己电脑上测试,用的方法是 ffmpeg fileter 修改图片尺寸,同时推流到monibuca
@hsinor ffmpeg 推流的指令贴下呢。
ffmpeg -re -stream_loop -1 -i test.mp4 -vcodec libx264 -vf scale=540:960 -f rtsp rtsp://localhost/live/test
目前找到的解决方案是 在 webgl 初始化时,添加代码,指定WebGl预处理字节数 gl.pixelStorei(gl.UNPACK_ALIGNMENT, 1);
目前找到的解决方案是 在 webgl 初始化时,添加代码,指定WebGl预处理字节数 gl.pixelStorei(gl.UNPACK_ALIGNMENT, 1);
但是这个对性能会有影响
还有另外一个想法,在解码之后,memcpy取linesize而不是halfw或者width
https://github.com/langhuihui/jessibuca/blob/1325ee7aad2f3be26b59d87f48794acc03346439/wasm/decoder.cpp#L287-L305
上面 memcpy(_1, _2, halfw)
,替换为 memcpy(_1, _2, frame->linesize[i])
关于 linesize,参考这篇文章 Ffmpeg的数据结构AVFrame
@hsinor 好的,TKS ,我看下。
@hsinor 已添加配置项进去了,默认是不开启的。
使用Jessibuca播放540x960的数据,YUV字节未对齐,出现绿屏现象。在使用WebGL对YUV420P进行渲染时,WebGL图像预处理默认每次取4字节的数据,但是540x960分辨率下的U、V分量宽度是540/2=270不能被4整除,导致绿屏。