wang-bin / mdk-sdk

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

32位的mdk无法record #217

Closed feiyangqingyun closed 5 months ago

feiyangqingyun commented 5 months ago

测试发现32位的库无法录制视频文件,录制出来的文件是0kb大小。测试过文件和视频流,都不行,源头是264。同样的换成64位的mdk就行。

wang-bin commented 5 months ago

你发下日志

feiyangqingyun commented 5 months ago

不试试不知道,试试吓一跳,大佬。32位的库不支持日志,问题搞大了。只要开启日志直接崩溃,程序都崩溃。用你的程序也是一样。mdkLogHandler log; MDK_setLogHandler(log);

feiyangqingyun commented 5 months ago

找到了可能的原因,如果用你自己带的32位的ffmpeg7,是可以正常录制的。如果替换成32位的ffmpeg4库,官网下载的。就不行。而用64位的,同样的操作都正常。也就是用64位的ffmpeg4的库。

feiyangqingyun commented 5 months ago

现在从ffmpeg5开始,官网不再提供32位的库,所以没法验证32位的ffmpeg7是否可以。不知道你这里是否有

wang-bin commented 5 months ago

https://sourceforge.net/projects/avbuild/files/windows-desktop/ 这里有我编的ffmpeg 3~7,-lite结尾的是裁剪过的,也是包里自带的版本,-default结尾的是启用了默认功能

feiyangqingyun commented 5 months ago

弱弱的问下,https://www.gyan.dev/ffmpeg/builds/ 这里下载的好像文件都好大,你编译的default版本,文件好小,是很多编码器没有加入其中吗?还有就是滤镜水印那块也没有。官方下载的有

feiyangqingyun commented 5 months ago

试了下你编译的32位的ffmpeg4,也是不行,32位的ffmpeg7可以

wang-bin commented 5 months ago

我测了没问题,要么你用vs调试看看。我编译的版本依赖库很少,水印不支持

feiyangqingyun commented 5 months ago

32位的ffmpeg5/6/7都可以,就是4不行。保存不了文件。0KB

feiyangqingyun commented 5 months ago

换成mingw,日志可以开启。msvc2013不行。保存日志如下 32位mdk+ffmpeg4录制失败.txt

feiyangqingyun commented 5 months ago

只要是msvc2013,无论32 64,日志开启,直接运行崩溃。原因未知。

wang-bin commented 5 months ago

只要是msvc2013,无论32 64,日志开启,直接运行崩溃。原因未知。

你调试看看崩在哪

wang-bin commented 5 months ago

换成mingw,日志可以开启。msvc2013不行。保存日志如下 32位mdk+ffmpeg4录制失败.txt

ffmpeg-4会出现not seekable错误,没仔细看原因,ffmpeg5开始都正常,版本太老了我估计不会去修,你可以换成一些不需要的格式,比如flv、ts

feiyangqingyun commented 5 months ago

第二个参数指定格式?还是文件名的拓展名就是flv?以哪个为准?

wang-bin commented 5 months ago

文件名就行

wang-bin commented 5 months ago

有个地方abi没处理好,最新包可以录制了

wang-bin commented 5 months ago

你可以用vs2013编译个简单的例子把exe和pdb发我我来调试下

feiyangqingyun commented 5 months ago

好的,等最新包下载后我再试试

feiyangqingyun commented 5 months ago

嗯,是可以录制了,谢谢。但是好像录制的文件,声音不能播放

wang-bin commented 5 months ago

我测了没问题。你发下播放日志

feiyangqingyun commented 5 months ago

用自带的ffmpeg7是正常的,用4录制部分文件只有视频,很多文件录制的时间戳不对。播放不了。 打开播放和录制.txt 播放录制的文件.txt

feiyangqingyun commented 5 months ago

再次全部测试了下32位的,ffmpeg567都是正常,还是4有问题。

wang-bin commented 5 months ago

日志看上去没问题。要不你源视频发我个

feiyangqingyun commented 5 months ago

https://github.com/wang-bin/mdk-sdk/assets/3894710/1abaa76f-9b01-47bb-b1bd-f99e682dc412

https://github.com/wang-bin/mdk-sdk/assets/3894710/16e663e1-af64-4fa6-a111-baaf627f7ff5

feiyangqingyun commented 5 months ago

小的那个是录制的文件,总时长都不对。但是用ffplay能播放,用mdk无法播放。用部分播放器也无法播放

wang-bin commented 5 months ago

也是abi问题。试下最新包

feiyangqingyun commented 5 months ago

好的,明天来

feiyangqingyun commented 5 months ago

试过了,可以了