登录 用户中心() [退出] 后台管理 注册
   
您的位置: 首页 >> CLQ工作室开源代码 >> 主题: [ffmpeg专题] b 站的 ijkplayer     [回主站]     [分站链接]
标题
[ffmpeg专题] b 站的 ijkplayer
clq
浏览(343) + 2020-11-29 15:51:12 发表 编辑

关键字:

[2020-11-29 17:37:58 最后更新]
[ffmpeg专题] b 站的 ijkplayer

ffmpeg 现在视频方面应该最广的开源项目之一。因为我们最近也要用,所以集合一下我们使用过的感觉比较方便的项目。

ffmpeg 的开源项目太多了,b 站这个是目前来说比较好用的。编译的成功率很高,出问题时能找到解决办法也很多。关键是还有很多国内网友在其上开发或是分享了大量的功能模块。
比较截屏、录像、滤镜这样的。

https://github.com/Bilibili/ijkplayer


clq
2020-11-29 16:08:03 发表 编辑


简单说一下安卓版本的编译

下载 ndk,按 https://github.com/Bilibili/ijkplayer 的说明下载 r10 版本,然后设置变量。
export ANDROID_NDK=/Users/dell/Desktop/test1/ndk/android-ndk-r10e

据说 android studio 下载的有问题,所以去官网下载吧。 参考 http://newbt.net/ms/vdisk/show_bbs.php?id=2DC7C0CB30E88A786D20EA1A968DBB17&pid=159

后面参考 https://github.com/Bilibili/ijkplayer 的说法,执行以下命令。对了忘记说了,我也是 mac 10.14 环境。原因是 windows 的话根据经验估计是编译不出来。linux 的话还要装虚拟机,而且不同版本的教程不同。而 mac 上的教程基本一致。当然 mac 上的版本变动,特别是编译器的变动也是经常的,但总能找到有网友发过的信息。
另外就是我本身就在写 ios ,所以我有这个环境。直接用就好了。

./init-android.sh

cd android/contrib
./compile-ffmpeg.sh clean
./compile-ffmpeg.sh all

cd ..
./compile-ijk.sh all

git 下载的命令我没有执行,因为我已经下载过了 ...

export ANDROID_SDK= 也没有执行,因为我要拿到 windows 下面用,只编译出 ndk 的就可以了。

这时有些环境会报 nasm/yasm not found or too old. Use --disable-x86asm for a crippled build.
处理办法可以是禁用各种 asm 代码,也可以下载 yasm -- 一种汇编代码编译器。
下载地址
www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gz
安装方法
curl http://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gz >yasm.tar.gz

tar xzvf yasm.tar.gz
cd yasm-1.3.0
./configure
make
sudo make install

有可能还要加环境变量
export PATH="$PATH:/usr/local/yasm/bin"
/etc/profile 文件末尾添加export PATH="$PATH:/usr/local/yasm/bin"

当然要换成您的路径。不过我用的这个 1.3.0 版本是不需要设置这些路径的。其实我觉得禁用 asm 汇编更安全,现在的 cpu 挺强的,没必要用 asm .
禁用方法可能可以用它前面的提示。我在后面的跟帖贴了一个 ios 版本禁用 armv7 的例子。




clq
2020-11-29 17:37:58 发表 编辑

---------------------------------------------------------------
第二个错误
---------------------------------------------------------------
gument]
AS libavcodec/arm/aacpsdsp_neon.o
./libavutil/arm/asm.S:50:9: error: unknown directive
.arch armv7-a

---------------------------------------------------------------
目前用的是这个
https://blog.csdn.net/qiuchangyong/article/details/100781700


编译ijkplayer遇到的问题“/libavutil/arm/asm.S:50:9: error: unknown directive”的解决
qiuchangyong 2019-09-12 21:01:34 1407 收藏 3
分类专栏: 流媒体与服务器
版权

ijkplayer在ios下的编译看这篇文章https://www.jianshu.com/p/9743a68c2939就可以了。编译ffmpeg库的时候会遇到armv7架构无法成功,网上的说法几乎都是建议在 compile-ffmpeg.sh 中删除 armv7,修改为:
FF_ALL_ARCHS_IOS8_SDK="arm64 i386 x86_64"

然后再编译。

但这样在之后lipo合并的库中就没有armv7版本了,所以在xcode项目的Valid Architectures里就要去掉armv7,否则会报错。

实际上还有另一种方法,即禁用汇编,将tools/do-compile-ffmpeg.sh文件里的armv7架构的情况,改为:

elif [ "$FF_ARCH" = "armv7" ]; then
FF_BUILD_NAME="ffmpeg-armv7"
FF_BUILD_NAME_OPENSSL=openssl-armv7
FF_XCRUN_OSVERSION="-miphoneos-version-min=6.0"
FF_XCODE_BITCODE="-fembed-bitcode"
FFMPEG_CFG_FLAGS="$FFMPEG_CFG_FLAGS --enable-pic --disable-asm"

这样就能编译出包含armv7架构的库了。

---------------------------------------------------------------


总数:2 页次:1/1 首页 尾页  
总数:2 页次:1/1 首页 尾页  


所在合集/目录
ffmpeg 更多



发表评论:
文本/html模式切换 插入图片 文本/html模式切换


附件:



NEWBT官方QQ群1: 276678893
可求档连环画,漫画;询问文本处理大师等软件使用技巧;求档softhub软件下载及使用技巧.
但不可"开车",严禁国家敏感话题,不可求档涉及版权的文档软件.
验证问题说明申请入群原因即可.

Copyright © 2005-2020 clq, All Rights Reserved
版权所有
桂ICP备15002303号-1