浏览器大全:是一个提供流行浏览器教程、在线学习分享的学习平台!

ffplay播放视频出现segment fault问题区分与处理

Linux,全称GNU/Linux,是一种免费使用和自由传播的类UNIX操作系统,其内核由林纳斯·本纳第克特·托瓦兹于1991年10月5日首次发布,它主要受到Minix和Unix思想的启发,是一个基于POSIX的多用户、多任务、支持多线程和多CPU的操作系统。
一、运行环境和版本信息:
FFMPEG版本:version N-86974-g7735ed2 Copyright (c) 2000-2017 the FFmpeg  编译器及运行环境:built with gcc 5.4.0 (ubuntu16.04.4) 
编译配置:configuration: --disable-static --enable-shared
模块库版本信息:
libavutil      55. 73.100 / 55. 73.100
libavcodec     57.102.100 / 57.102.100
libavformat    57. 76.100 / 57. 76.100
libavdevice    57.  7.100 / 57.  7.100
libavfilter     6. 98.100 /  6. 98.100
libswscale      4.  7.102 /  4.  7.102
libswresample   2.  8.100 /  2.  8.100
 
二、问题描述
ffplay源码编译安装完成后播放视频时,先是出现一个告警:Failed to initialize a hardware accelerated renderer: Couldn't find matching render driver,然后再紧接着出现segment fault,程序停止运行。
 
三、解决方案
将SDL2库文件SDL_yuv_sw.c中的函数SDL_SW_SetupYUVDisplay中大概983行位置swdata->Display1X = ColorRGBDitherYV12MMX1X改成swdata->Display1X = Color32DitherYV12Mod1X;使用渲染使用Color32DitherYV12Mod1X函数,而不是使用硬件加速渲染,问题得到解决。
 
四、问题原因及分析
原因:宿主环境不支持硬件加速渲染导致在后续渲染画面时调用ColorRGBDitherYV12MMX1X函数出现段错误。
分析:
通过gdb 断点运行找到ffplay调用SDL2库的入口函数SDL_UpdateYUVTexture和segment fault函数ColorRGBDitherYV12MMX1X,通过代码分析可知,ColorRGBDitherYV12MMX1X 函数是一个MMX指令集硬件加速渲染的函数,但是由于宿主环境不支持硬件加速,从而导致运行时创建的是一个普通的渲染句柄。在后续画面渲染再使用本函数时就出现segment fault的错误。所以在宿主环境不支持硬件加速渲染的情况下将函数ColorRGBDitherYV12MMX1X替换成Color32DitherYV12Mod1X,重新编译安装SDL2库问题便可以得到解决。
 
五、总结
这种解决方案虽然简单粗暴,不具备普适性,但是高效可行。

Linux是一套免费使用和自由传播的类Unix操作系统



相关软件

2345加速浏览器官方版

2345加速浏览器官方版 | 56.2MB

2345加速浏览器官方版

新一代2345加速浏览器采用Chromium和IE双内核,主打极速与安全特性。基于Chromium深度定制,引入网页智能预加载技术,访问网页更快速..

QQ浏览器官方正式版

QQ浏览器官方正式版 | 49.67MB

QQ浏览器官方正式版

QQ浏览器秉承TT浏览器1-4系列方便易用的特点,但技术架构不同,交互和视觉表现也重新设计,采用Chromium内核+IE双内核,让浏览快速稳定...

百度浏览器最新版下载

百度浏览器最新版下载 | 13.3MB

百度浏览器最新版下载

q百度浏览器,是一款简洁轻快、智能懂你的浏览器。依靠百度强大的搜索平台,在满足用户浏览网页的基础上,它整合百度体系业务优势,带给用户更方便的浏览方式功能...

UC浏览器官方正式版

UC浏览器官方正式版 | 44.2MB

UC浏览器官方正式版

UC浏览器(UC Browser)是UC Mobile Limited在2004年8月开发的一款软件,分uc手机浏览器和uc浏览器电脑版。UC浏览器是全球使用量最大的第三方手机浏览器...

猎豹浏览器2022最新版下载

猎豹浏览器2022下载 | 45MB

猎豹浏览器2022最新版下载

猎豹安全浏览器对Chrome的Webkit内核进行了超过100项的技术优化,访问网页速度更快。其具有首创的智能切换引擎,动态选择内核匹配不同网页...

360安全浏览器官方版下载

360安全浏览器下载 | 21.4MB

360安全浏览器官方版下载

360安全浏览器拥有全国最大的恶意网址库,采用恶意网址拦截技术,可自动拦截挂马、欺诈、网银仿冒等恶意网址。独创沙箱技术,在隔离模式即使访问****也不会感染...