关于ffplay在macos上运行奔溃的问题

这个问题大概是由于 MacOS 的问题引起的,奔溃的地方在 SDL2 的代码中,如果直接使用 brew 安装 SDL2就会遇到这个问题,所以需要修改 SDL2源码然后再编译安装。

我这里采用的是 origin/release-2.28.x 分支,修改部分如下:

src/video/cocoa/SDL_cocoamouse. m 文件中:

c 复制代码
/*
把下面这个函数的函数体删除或者注释掉,让他直接返回NULL
*/
@implementation NSCursor (InvisibleCursor)
+ (NSCursor *)invisibleCursor
{
    static NSCursor *invisibleCursor = NULL;
    return invisibleCursor;
}
@end

根目录的 CMakeLists 中:

cmake 复制代码
# set(SDLMAIN_SOURCES ${SDLMAIN_SOURCES} ${N3DS_MAIN_SOURCES}) 注释这一行
set(SDLMAIN_SOURCES ${SDLMAIN_SOURCES} ${N3DS_MAIN_SOURCES} # 添加下面的内容
        src/video/cocoa/SDL_cocoamouse.h
        src/video/cocoa/SDL_cocoamouse.m)

还有一个地方,我没有修改就可以跑了,但是最好修改一下,在 src/video/cocoa/SDL_cocoawindow. m 文件里 :

c 复制代码
/*
把下面这个函数中的部分注释掉就可以了
*/
- (void)resetCursorRects
{
    /* KJSL: temp workaround for crash on Intel MacOS Sequioa 15.1.1 (24B91)

//    [super resetCursorRects];
//    [self addCursorRect:[self bounds]
//                 cursor:Cocoa_GetDesiredCursor()];
     */
}

- (BOOL)acceptsFirstMouse:(NSEvent *)theEvent

然后重新编译,我是吧 SDL2 和 ffmpeg 全部重新编译了一遍,但我估计只要重新编译 SDL2 就可以了。

相关推荐
fei_sun17 小时前
RIB、FIB、MAC 、ARP 表
服务器·网络·macos
Highcharts.js20 小时前
如何在macOS桌面应用集成Highcharts
macos·highcharts·前端可视化·交互图表
可乐鸡翅yeah_20 小时前
HLS 业务 Referer‑Policy 网页元标签引发播放异常排错
前端·javascript·网络·ffmpeg·php·音视频
zaemyn202021 小时前
macOS 上 AccessClient 无法唤起?排查 Python 架构与 Windows App 识别问题
windows·python·macos·远程桌面·accessclient
开开心心就好2 天前
本地文件搜索工具推荐,占用小速度还快
智能手机·ffmpeg·ocr·word·音视频·网络攻击模型·安全架构
我科绝伦(Huanhuan Zhou)2 天前
oracle坏块导致备份不了
数据库·oracle·ffmpeg
应用市场2 天前
把旧 Pixel 变成相册备份中转站(上):Mac 到安卓的照片传输工具设计——流式上传、sha256 校验、adb forward 与 Bonjour
android·macos·adb·kotlin·swift
RS迷途小书童2 天前
Python+FFmpeg提取大疆无人机MP4内嵌mov_text遥测SRT字幕并做完整性校验
python·ffmpeg·大疆·srt字幕·dji
开开心心就好2 天前
视频压缩工具推荐,画质效果很能打
智能手机·ffmpeg·ocr·word·排序算法·音视频·散列表
可乐鸡翅yeah_3 天前
业务中 M3U8 水印相关坑,硬水印和动态水印区别
前端·网络·数据库·ffmpeg·m3u8在线