mac平台electron native(ffmpeg)模块编译

本文详述了在Mac系统中为Electron项目编译和整合FFmpeg库的过程,包括安装ffmpeg依赖、编译FFMPEG模块、安装Electron、配置node-gyp脚本、编译模块、修改makefile和 electron-build的package.Json,以及解决可能出现的Module did not self-register错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

近段时间一直在忙着编译mac平台下ffmpeg库用于electron项目。搜索了很多资料才终于把整个编译过程整通过。

1.查看以下安装说明并安装ffmpeg依赖模块

http://blog.youkuaiyun.com/matrix_laboratory/article/details/53519165

http://blog.youkuaiyun.com/willib/article/details/52530328

2. 编译FFMPEG模块

#说明:
#FFMPEG版本:3.2.2

#配置命令:
./configure --enable-gpl --enable-version3 --enable-nonfree \
--enable-bzlib --enable-iconv --enable-zlib --enable-libopus \
--enable-libfdk-aac --enable-libx264 --enable-libvpx --enable-libfreetype \
--enable-fontconfig --enable-libass --enable-libssh \
--enable-static \
--disable-sdl2 \
--extra-ldflags=-L/usr/local/lib

#编译模块
make BITS=64

#安装模块至../../ffmpeg_dev64 目录
DESTDIR='../../ffmpeg_dev64' make install
#修正目录中模块
INSTALL_DIR=../../ffmpeg_dev64
cp -r $INSTALL_DIR/usr/local/  $INSTALL_DIR
rm -r $INSTALL_DIR/usr/

#清理垃圾
make clean

 

3.安装electron

#electron:
#安装1.4.4版本
npm install electron@1.4.4

4.配置node-gyp编译脚本

{
	"targets":[
		{
			"target_name":"xxx",
	        'include_dirs': [
	            '.',
	            '../3rd-mac/ffmpeg/include',
	            '../3rd-mac/iojs/deps/uv/include',
	            '../3rd-mac/iojs/deps/npm',
	            '../3rd-mac/iojs/deps/v8',
	            '../3rd-mac/iojs/deps/http_parse',
	            '../3rd-mac/iojs/deps/zlib',
	            '../3rd-mac/iojs/src',
	            '/usr/local/include'
	        ],
			"sources":[
				"RegisterModules.cpp",
				"xxx.cpp",
			],
			'libraries': [
				"-lstdc++",
				"-lpthread",
				"-lsdl2",  
				"-lavcodec",
				"-lavdevice",
				"-lavfilter",
				"-lavformat",
				"-lavutil",
				"-lpostproc",
				"-lswresample",
				"-lswscale",

				"-lopus",
				"-logg",
				"-lfdk-aac",
				"-lvpx",
				"-lass",
				"-lx264",
				"-liconv",
				"-lfontconfig",
				"-lfreetype",
				"-lssh",
				"-lssl",
				"-lbz2",
				"-lz",
				"-llzma",

				"-framework CoreGraphics",
				"-framework CoreVideo",
				"-framework Foundation",
				"-framework AVFoundation",
				"-framework CoreMedia",
				"-framework QuartzCore",
				"-framework AppKit",
				"-framework OpenGL",
				"-framework VideoDecodeAcceleration",
				"-framework CoreFoundation",
				"-framework CoreServices",
				"-framework Security"
	        ],
	        'xcode_settings': {
	            'GCC_ENABLE_CPP_EXCEPTIONS': 'NO',
	        	'OTHER_CFLAGS':[
	        		'-std=c++11',
	        		'-stdlib=libc++'
	        	]
	        },
			'defines': [
	    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值