解决集成 FFmpeg 时编译报错问题

解决集成 FFmpeg 时编译报错问题

由于 FFmpeg 依赖了很多个系统框架,所以在集成过程中很可能会遇到以下问题,只需要加上缺少的库就行了。下面列举的是集成 FFmpeg 3.1.11 版本时可能遇到的。

1、缺少 Security.framework

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
Undefined symbols for architecture x86_64:
"_SSLClose", referenced from:
_tls_open in libavformat.a(tls_securetransport.o)
_tls_close in libavformat.a(tls_securetransport.o)
"_SSLCopyPeerTrust", referenced from:
_tls_open in libavformat.a(tls_securetransport.o)
"_SSLCreateContext", referenced from:
_tls_open in libavformat.a(tls_securetransport.o)
"_SSLHandshake", referenced from:
_tls_open in libavformat.a(tls_securetransport.o)
"_SSLRead", referenced from:
_tls_read in libavformat.a(tls_securetransport.o)
"_SSLSetCertificate", referenced from:
_tls_open in libavformat.a(tls_securetransport.o)
"_SSLSetConnection", referenced from:
_tls_open in libavformat.a(tls_securetransport.o)
"_SSLSetIOFuncs", referenced from:
_tls_open in libavformat.a(tls_securetransport.o)
"_SSLSetPeerDomainName", referenced from:
_tls_open in libavformat.a(tls_securetransport.o)
"_SSLSetSessionOption", referenced from:
_tls_open in libavformat.a(tls_securetransport.o)
"_SSLWrite", referenced from:
_tls_write in libavformat.a(tls_securetransport.o)
"_SecIdentityCreate", referenced from:
_tls_open in libavformat.a(tls_securetransport.o)
"_SecItemImport", referenced from:
_import_pem in libavformat.a(tls_securetransport.o)
"_SecTrustEvaluate", referenced from:
_tls_open in libavformat.a(tls_securetransport.o)
"_SecTrustSetAnchorCertificates", referenced from:
_tls_open in libavformat.a(tls_securetransport.o)
ld: symbol(s) not found for architecture x86_64

Read More

我的 2018

2018 年回顾

工作

今天是 2018 年的最后一个班了,原本计划 mac 影音 2.16 版发布的,因为公司有规定,所以只能先封板,下周再上线。

哦,是的,我现在是一名 macOS 开发者了,今年 11 月初公司人员优化后转行过来的,边开发边学习到现在基本算是 2 个月了。经过实战,我对于 macOS 开发有了一定的了解,不过还没有 iOS 开发那么熟练,毕竟桌面应用开发跟移动端是有些区别的。

再往前说的话,我学习了两个前端框架:Angular 和 React,分别写了两个小应用,部署在公司内网,部署时简单学习了 Nginx 配置。

然后就是在做小游戏开发了,去年年底一直做到今年 10 月份左右,很遗憾没有像样的产品拿出来,对于公司而言,又投入没回报;对于本人而言,无非是对微信小游戏开发 API 有些了解,cocos2d 小游戏引擎的简单使用,还有 JavaScript 语言的深入学习,以及前端开发环境搭建,前端代码调试等方面的学习罢了。

除此之外,还创建了技术 WIKI 站点,方便使用 Markdown 编写 WIKI。还有很多个Jenkins项目,实现了自动化打包发布,节省了很多时间,避免了很多人为错误。

Read More

搭建同时支持 ES6 Module 和 CommonJS 的开发环境

我在编写 RxJS 入门教程的时候,折腾了大半上午都没能跑出一个 demo 来,让我感到沮丧,我知道使用 node.js 分分钟就能出现效果,可我就是想用 node 的 npm 去管理项目依赖,然后在浏览器里执行,因为我感觉使用这种方式才是做前端项目管理依赖的正确方式,而不是拿来源码,拖到 H5 工程里!我坚信我是对的,因为使用 Creator 编写小游戏时就能这么用,它是如何做到的呢?又经过一个下午的折腾,终于搞明白了全部流程,并对 JavaScript 模块化编程有的新的认识。

本文是一篇基础教程,前端大神可直接忽略;旨在学习:

  1. 浏览器如何加载 ES6 模块(Module)?
  2. 最新语法如何兼容老版本引擎(浏览器,Node…)?
  3. Node.js 如何支持 ES6 模块(Module)?
  4. 浏览器如何加载 CommonJS 模块?
  5. 代码修改后如何自动编译并刷新浏览器预览?

本文不会讲以下概念,但可以通过准备好的连接去补习:

Read More

JavaScript 模块化编程

JavaScipt 是一门非常流程的脚本语言,特别是 Node.js 的出现,让这门语言大放异彩!也给前端开发人员转型做后端敞开了大门,同时也对 JavaScript 模块化编程产生了深远影响。
一起来看下模块化的发展历程吧!

无模块化

下面是不使用模块的方式,比如要使用 jquery 库,找到源文件使用 script 标签进行导入,type 指定为 ‘text/javascript’,src 是一个相对或绝对的 js 源码地址。

1
2
3
4
5
6
7
8
<script type="text/javascript" src="libs/jquery.js"/>
<script type="text/javascript" src="source/util.js"/>
<script type="text/javascript" src="source/A.js"/>
<script type="text/javascript" src="source/B.js"/>
// ...
<script>
// code...
</script>

这种方式可以工作,不过有些弊端:

  1. 全局变量挂载重复或污染
  2. 依赖关系不明显,但导入顺序还不能错
  3. 更新麻烦,需要手动操作,不知道何时 jquery 库会更新
  4. 版本管理混乱,可能需要通过版本控制工具追踪
  5. 相同功能代码复制严重,共用代码不容易维护

带着这么多问题上路,长此以往代码会混乱不堪,需要找到一种规范去解决,开源社区为此做出了巨大努力(此处应有掌声),下面详细看下!

Read More

CentOS 安装 MySQL

以下命令如有权限问题请自行使用 sudo 或者切换到 root 账户,我的这台主机是公司分配的,通过 ssh 直接登录的 root 账户,所以就没有带 sudo.该笔记可能不适用于 CentOS 7.

查看系统版本

  • uname

    Linux

  • uname -a

    Linux 110.116.189.67 3.10.0-327.el7.x86_64 #1 SMP Thu Oct 29 17:29:29 EDT 2015 x86_64 x86_64 x86_64 GNU/Linux

  • rpm -q centos-release

    centos-release-6-10.el6.centos.12.3.x86_64

安装 MySQL

  • yum update
  • yum install mysql-server
  • /sbin/chkconfig –levels 235 mysqld on

启动 MySQL 服务

  • service mysqld status
  • service mysqld start
  • service mysqld restart
  • service mysqld stop

参考