Closed eko5624 closed 1 year ago
这log根本没有出错信息呃 ffmpeg使用libplacebo只是滤镜,shaderc更是只用来转换glsl,根本不会被使用到 考虑到libplacebo成吨的bug,播放没有问题也可能只是没报错罢了
具体定位问题的话,我觉得首先应该单独动态链接libplacebo和shaderc排除干扰 其次libplacebo的demo里也有个播放器plplay,用那个动态链接ffmpeg来播放视频试下 当然最好是直接上gdb/lldb之类的来分析
怎么编译出plplay并动态链接到ffmpeg呢?在libplacebo没找到编译plplay的相关说明。
这log根本没有出错信息呃 ffmpeg使用libplacebo只是滤镜,shaderc更是只用来转换glsl,根本不会被使用到 考虑到libplacebo成吨的bug,播放没有问题也可能只是没报错罢了
具体定位问题的话,我觉得首先应该单独动态链接libplacebo和shaderc排除干扰 其次libplacebo的demo里也有个播放器plplay,用那个动态链接ffmpeg来播放视频试下 当然最好是直接上gdb/lldb之类的来分析
非常牛!!动态编译libplacebo就解决问题啦!原理是什么呢?
顺便一提:可以把工具链里的libmcfgthread.dll.a删掉,这样的话编译出来的程序就无需依赖libmcfgthread-1.dll了。
顺便一提:可以把工具链里的libmcfgthread.dll.a删掉,这样的话编译出来的程序就无需依赖libmcfgthread-1.dll了。
话说我看你macOS版的mpv所有依赖都是动态链接的,为啥到了windows上就从一个极端到另一个极端了?
非常牛!!动态编译libplacebo就解决问题啦!原理是什么呢?
因为libplacebo是bug大户,而ffmpeg和mpv所链接的libplacebo代码并不相同,这里有问题其实代表的是libplacebo被ffmpeg使用的那部分代码有bug
macos版动态链接简单呀,也有部分库不支持静态链接吧。
macos版动态链接简单呀,也有部分库不支持静态链接吧。
我倒是觉得macOS上那堆库反正也没可能被其他程序使用,全静态链接更省事。反倒是windows上,那些dll的确能用来和其他程序共享
我们这个版本的ffmpeg是动态编译的。在编译ffmpeg时增加
--enable-libplacebo --enable-libshaderc
选项 ,可以成功编译出ffmpeg动态版,也可以成功编译mpv( https://github.com/eko5624/mpv-win64/releases/download/2023-08-26/shared-mpv-20230826.7z )。但我发现在mpv.conf里设置vo=gpu-next
,然后播放杜比视界的片子时,mpv会闪退,播放普通SDR片子就一切正常。 于是我进一步做了测试:静态编译ffmpeg,然后再编译出mpv。用这个版本的mpv,同样的设置播放杜比视界的片子就没有问题。不知道是什么原因,特来请教。 出错LOG如下: mpv.log