在Bilibili/ijkplayer,里面增加librtmp。
来源:互联网 发布:达内大数据课程怎么样 编辑:程序博客网 时间:2024/05/23 14:16
基本都是照着https://github.com/yixia/FFmpeg-Vitamio写的。但是有些地方不一样了。
因为librtmp需要openssl的支持,所以使用ijk的init-android-openssl.sh和android/contrib/compile-openssl.sh就可以编译成功,
在build/openssl-armv7a/output/lib下会生成两个.a静态库文件libcrypto.a和libssl.a。
接下来,编译librtmp
在android/contrib目录下
git clone git://git.ffmpeg.org/rtmpdump
下载librtmp。
在文件下建4个文件
Android.mk
AndroidManifest.xml
jni/Application.mk
librtmp/Android.mk
Android.mk中
--------------------------------------------------------------------
<strong>LOCAL_PATH := $(call my-dir)subdirs := $(addprefix $(LOCAL_PATH)/,$(addsuffix /Android.mk, \librtmp \))ifeq ($(TARGET_ARCH_ABI),armeabi-v7a)openssl=openssl-armv7aelse ifeq ($(TARGET_ARCH_ABI),x86)openssl=openssl-x86else ifeq ($(TARGET_ARCH_ABI),armeabi)openssl=openssl-armv5endifSSL :=$(LOCAL_PATH)/../build/$(openssl)/outputifndef SSL$(error "You must define SSL before starting")endifinclude $(subdirs)</strong>--------------------------------------------------------------------
AndroidManifest.xml随便拷贝一个
jni/Application.mk中,支持3中平台
--------------------------------------------------------------------
NDK_TOOLCHAIN_VERSION := 4.8APP_ABI := armeabi armeabi-v7a x86 APP_PROJECT_PATH := $(shell pwd)APP_BUILD_SCRIPT := $(APP_PROJECT_PATH)/Android.mk
--------------------------------------------------------------------
librtmp/Android.mk中
--------------------------------------------------------------------
<strong>LOCAL_PATH:= $(call my-dir)include $(CLEAR_VARS)LOCAL_C_INCLUDES += $(NDK_PROJECT_PATH)/librtmp \$(SSL)/includeLOCAL_SRC_FILES:= \amf.c \hashswf.c \log.c \parseurl.c \rtmp.cLOCAL_CFLAGS += -I$(SSL)/include -DUSE_OPENSSLLOCAL_LDLIBS += -L$(SSL)/libLOCAL_LDLIBS += -lssl -lcrypto -lzLOCAL_MODULE := librtmpinclude $(BUILD_SHARED_LIBRARY)</strong>
--------------------------------------------------------------------
执行ndk-build命令,进行编译。然后就是要编译ffmpeg了。
修改tools下的do-compile-ffmpeg.sh文件
定义RTMPDUMP=$FF_BUILD_ROOT/librtmp
注意把FF_BUILD_ROOT=`pwd`放到他前面
在if [ "$FF_ARCH" = "armv7a" ]; then,elif [ "$FF_ARCH" = "armv5" ]; then,elif [ "$FF_ARCH" = "x86" ]; then里
修改FF_EXTRA_LDFLAGS="$FF_EXTRA_LDFLAGS -Wl,--fix-cortex-a8 -L$RTMPDUMP/libs/armeabi-v7a"
增加
RTMP_OBJS=`find $RTMPDUMP/obj/local/armeabi-v7a/objs/rtmp -type f -name "*.o"`修改
FF_ASM_OBJ_DIR="libavutil/arm/*.o libavcodec/arm/*.o libswresample/arm/*.o $RTMP_OBJS"
<pre name="code" class="plain">FF_CFG_FLAGS="$FF_CFG_FLAGS --enable-protocol=librtmp*"FF_CFG_FLAGS="$FF_CFG_FLAGS --enable-librtmp"因为这3中平台支持openssl。
在FF_CFLAGS="-O3 -Wall -pipe \里增加
-I$RTMPDUMP -lrtmp"
FF_CFG_FLAGS增加
修改ffmpeg-*/configure
enabled librtmp && require librtmp librtmp/rtmp.h RTMP_Init -L$RTMPDUMP/libs/armeabi-v7a -lrtmp || die "ERROR: librtmp not found"; }
然后使用compile-ffmpeg.sh就可以编译了。
- 在Bilibili/ijkplayer,里面增加librtmp。
- 在Bilibili/ijkplayer,里面增加librtmp。
- 试水Bilibili/ijkplayer-Android
- https://github.com/Bilibili/ijkplayer
- 试水Bilibili/ijkplayer-Android-Demo
- 试水Bilibili/ijkplayer-Android-Demo
- ijkplayer中使用librtmp (Android)
- Android ijkplayer 编译的 bilibili 开源编译版本上,去掉失败的依赖,增加对 https 支持
- iOS Bilibili/ijkplayer 集成与使用
- bilibili 开源播放器 ijkplayer
- BiliBili-IJKPlayer播放器源码分析(一)
- BiliBili-IJKPlayer播放器源码分析(二)
- 利用Bilibili的开源库ijkplayer实现视频直播
- linux 应用后台里面执行增加在命令增加&
- Android,ijkplayer增加https协议支持,编译运行ijkplayer
- 在datalist 里面增加hyperlink控件是碰到的问题
- 如何增加2.0、3.5的目标框架在VS2010里面
- 如何增加2.0、3.5的目标框架在VS2010里面
- OVS:网络环路 广播风暴解决方案
- linux shell脚本游戏之推箱子
- UISearchController
- scala akka wordcount程序
- 第六周项目五-后缀表达式
- 在Bilibili/ijkplayer,里面增加librtmp。
- solr系列教程:第二节 新建core
- [leetcode]Combination Sum II
- (第四周项目5)猴子选大王
- POJ 1007 DNA Sorting
- Hadoop学习笔记———《MultipleOutputs———将结果输出到指定的多个文件或文件夹》
- 【C++】利用析构统计函数运行时间
- 第四周项目3 单链表的应用3
- cpu 调频 温度 ondemand