Project Name | Stars | Downloads | Repos Using This | Packages Using This | Most Recent Commit | Total Releases | Latest Release | Open Issues | License | Language |
---|---|---|---|---|---|---|---|---|---|---|
Libhv | 5,220 | 5 days ago | 20 | bsd-3-clause | C | |||||
🔥 比libevent、libuv更易用的网络库。A c/c++ network library for developing TCP/UDP/SSL/HTTP/WebSocket/MQTT client/server. | ||||||||||
Rxffmpeg | 3,762 | 5 months ago | 1 | May 07, 2021 | 166 | C | ||||
🔥💥RxFFmpeg 是基于 ( FFmpeg 4.0 + X264 + mp3lame + fdk-aac + opencore-amr + openssl ) 编译的适用于 Android 平台的音视频编辑、视频剪辑的快速处理框架,包含以下功能:视频拼接,转码,压缩,裁剪,片头片尾,分离音视频,变速,添加静态贴纸和gif动态贴纸,添加字幕,添加滤镜,添加背景音乐,加速减速视频,倒放音视频,音频裁剪,变声,混音,图片合成视频,视频解码图片,抖音首页,视频播放器及支持 OpenSSL https 等主流特色功能 | ||||||||||
Wolfssl | 1,859 | 3 hours ago | 7 | January 01, 1900 | 80 | gpl-2.0 | C | |||
The wolfSSL library is a small, fast, portable implementation of TLS/SSL for embedded devices to the cloud. wolfSSL supports up to TLS 1.3! | ||||||||||
Sslsplit | 1,448 | a year ago | 67 | other | C | |||||
Transparent SSL/TLS interception | ||||||||||
Golang Tls | 788 | 2 years ago | 2 | cc0-1.0 | ||||||
Simple Golang HTTPS/TLS Examples | ||||||||||
Pem | 530 | 5,350 | 476 | a year ago | 54 | January 25, 2022 | 5 | other | JavaScript | |
Create private keys and certificates with node.js | ||||||||||
Mutual Tls Ssl | 480 | 12 days ago | apache-2.0 | Java | ||||||
🔐 Tutorial of setting up Security for your API with one way authentication with TLS/SSL and mutual authentication for a java based web server and a client with both Spring Boot. Different clients are provided such as Apache HttpClient, OkHttp, Spring RestTemplate, Spring WebFlux WebClient Jetty and Netty, the old and the new JDK HttpClient, the old and the new Jersey Client, Google HttpClient, Unirest, Retrofit, Feign, Methanol, vertx, Scala client Finagle, Featherbed, Dispatch Reboot, AsyncHttpClient, Sttp, Akka, Requests Scala, Http4s Blaze, Kotlin client Fuel, http4k, Kohttp and ktor. Also other server examples are available such as jersey with grizzly. Also gRPC, WebSocket and ElasticSearch examples are included | ||||||||||
E2guardian | 410 | 13 days ago | 70 | gpl-2.0 | HTML | |||||
E2guardian is a web content filter that can work in proxy, transparent or icap server modes | ||||||||||
Libuhttpd | 334 | a year ago | 2 | mit | C | |||||
A very flexible, lightweight and high performance HTTP server library based on libev and http-parser for Embedded Linux. | ||||||||||
Hands On Network Programming With C | 256 | 10 months ago | 2 | mit | C | |||||
Book Example Code for Hands-On Network Programming with C |
Language: English
RxFFmpeg 是基于 ( FFmpeg 4.0 + X264 + mp3lame + fdk-aac + opencore-amr + openssl) 编译的适用于 Android 平台的音视频编辑、视频剪辑的快速处理框架,包含以下功能:视频拼接,转码,压缩,裁剪,片头片尾,分离音视频,变速,添加静态贴纸和gif动态贴纸,添加字幕,添加滤镜,添加背景音乐,加速减速视频,倒放音视频,#百变魔音#,音频裁剪,混音,图片合成视频,视频解码图片,抖音首页,#视频播放器#,及支持 OpenSSL https 等主流特色功能
扫码 or 点击下载 |
---|
![]() |
库名 | 版本 | 下载地址 |
---|---|---|
FFmpeg | 4.0 | http://ffmpeg.org/releases/ffmpeg-4.0.tar.bz2 |
X264 | x264-snapshot-20180212-2245-stable | http://download.videolan.org/x264/snapshots/x264-snapshot-20180212-2245-stable.tar.bz2 |
mp3lame | 3.100 | https://jaist.dl.sourceforge.net/project/lame/lame/3.100/lame-3.100.tar.gz |
fdk-aac | 0.1.6 | https://jaist.dl.sourceforge.net/project/opencore-amr/fdk-aac/fdk-aac-0.1.6.tar.gz |
opencore-amr | 0.1.5 | https://jaist.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-0.1.5.tar.gz |
ndk | android-ndk-r10e-linux-x86_64 | https://dl.google.com/android/repository/android-ndk-r10e-linux-x86_64.zip |
功能 | 是否支持 | 简述 |
---|---|---|
FFmpeg命令 | √ | 支持任何FFmpeg命令执行 |
FFmpeg进度回调 | √ | 支持FFmpeg命令执行进度回调 |
FFmpeg中断 | √ | 支持中断进行中的FFmpeg命令 |
同步执行 | √ | 适用于多条命令分步执行 |
异步执行 | √ | 适用于单条命令执行 |
Debug模式 | √ | 支持开启/关闭 Debug 模式 |
getMediaInfo() | √ | 获取媒体文件详细属性信息 |
平台架构 | √ | 支持 armeabi-v7a, arm64-v8a, x86, x86_64 |
硬件加速 | √ | 支持硬件加速,使编解码处理更快(已开启MediaCodec) |
单个so打包 | √ | 支持把FFmpeg的各子模块打包成一个librxffmpeg-core.so核心库,无需导入七八个so库 |
X264 | √ | 支持libx264编码库,可以使压缩后的视频体积变的极小,清晰度还保持着很高清 |
mp3lame | √ | 支持MP3音频编解码 |
fdk-aac | √ | 支持AAC音频编解码 |
opencore-amr | √ | version >= 4.7.0 支持amr音频编解码(转码时需指定:-ar 8000 -ac 1) |
https | √ | version >= 3.1.0 支持 https |
格式转换 | √ | 如: avi > mp4 > avi; mp3 > aac > mp3 等 |
自研播放器 | √ | RxFFmpegPlayer播放器主打轻量、高效、低功耗、视频秒开等特色 |
常用命令 | √ | 持续更新 点击查看 |
在根目录下的build.gradle里添加maven仓库
allprojects {
repositories {
...
maven { url 'https://www.jitpack.io' }
}
}
添加依赖,最新版本,版本更新记录
dependencies {
//以下选一个即可
//完整版
implementation 'com.github.microshow:RxFFmpeg:4.9.0'
//极速版 (预计占用 4M 左右空间),主要移除了一些不常用的编解码器
implementation 'com.github.microshow:RxFFmpeg:4.9.0-lite'
}
如果你的App只要v7a平台,可以只保留armeabi-v7a,不过推荐加上arm64-v8a架构,这样性能会大大提升
defaultConfig {
.
.
.
ndk {
//目前已支持 "armeabi-v7a","arm64-v8a","x86","x86_64" 平台架构
abiFilters "armeabi-v7a","arm64-v8a","x86","x86_64"
}
}
RxFFmpegInvoke.getInstance().setDebug(true);
private void runFFmpegRxJava() {
String text = "ffmpeg -y -i /storage/emulated/0/1/input.mp4 -vf boxblur=25:5 -preset superfast /storage/emulated/0/1/result.mp4";
String[] commands = text.split(" ");
myRxFFmpegSubscriber = new MyRxFFmpegSubscriber(this);
//开始执行FFmpeg命令
RxFFmpegInvoke.getInstance()
.runCommandRxJava(commands)
.subscribe(myRxFFmpegSubscriber);
}
public static class MyRxFFmpegSubscriber extends RxFFmpegSubscriber {
private WeakReference<HomeFragment> mWeakReference;
public MyRxFFmpegSubscriber(HomeFragment homeFragment) {
mWeakReference = new WeakReference<>(homeFragment);
}
@Override
public void onFinish() {
final HomeFragment mHomeFragment = mWeakReference.get();
if (mHomeFragment != null) {
mHomeFragment.cancelProgressDialog("处理成功");
}
}
@Override
public void onProgress(int progress, long progressTime) {
final HomeFragment mHomeFragment = mWeakReference.get();
if (mHomeFragment != null) {
//progressTime 可以在结合视频总时长去计算合适的进度值
mHomeFragment.setProgressDialog(progress, progressTime);
}
}
@Override
public void onCancel() {
final HomeFragment mHomeFragment = mWeakReference.get();
if (mHomeFragment != null) {
mHomeFragment.cancelProgressDialog("已取消");
}
}
@Override
public void onError(String message) {
final HomeFragment mHomeFragment = mWeakReference.get();
if (mHomeFragment != null) {
mHomeFragment.cancelProgressDialog("出错了 onError:" + message);
}
}
}
@Override
public void onDestroy() {
super.onDestroy();
if (myRxFFmpegSubscriber != null) {
myRxFFmpegSubscriber.dispose();
}
}
RxFFmpegInvoke.getInstance().runCommand(command, null);
RxFFmpegInvoke.getInstance().exit();
public static String[] getBoxblur() {
RxFFmpegCommandList cmdlist = new RxFFmpegCommandList();
cmdlist.append("-i");
cmdlist.append("/storage/emulated/0/1/input.mp4");
cmdlist.append("-vf");
cmdlist.append("boxblur=5:1");
cmdlist.append("-preset");
cmdlist.append("superfast");
cmdlist.append("/storage/emulated/0/1/result.mp4");
return cmdlist.build();
}
RxFFmpegInvoke.getInstance().getMediaInfo(String filePath);
-dontwarn io.microshow.rxffmpeg.**
-keep class io.microshow.rxffmpeg.**{*;}
总结:可以看出arm64-v8a架构的运行效率远大于armeabi-v7a,强烈建议在你的App添加arm64-v8a架构的so,同时也是响应Google的号召。
自研RxFFmpegPlayer播放器内核基于(FFmpeg OpenGL OpenSL)
主打轻量级、高效、低功耗,播放本地视频秒开等特色
涵盖播放器基本的 播放、暂停、快进、快退、音量控制、声道控制、循环播放、播放进度、加载状态等功能
支持播放本地视频文件、在线视频、直播流(hls、rtmp、m3u8…)等
项目里已集成OpenSSL所以也支持Https访问
视频画面支持双指缩放、旋转、移动等手势操作
支持切换系统MediaPlayer内核
按登记顺序排序,更多接入APP,欢迎去这里登记(供开源用户参考),据不完整数据统计,目前已有上千款App已接入RxFFmpeg,为音视频项目赋能!
欢迎加入高质量音视频交流群,RxFFmpeg助力您学习移动端音视频!
QQ群:799934185 |
---|
![]() |
撸码不易,如果觉得帮您节省了大量的开发时间,对您有所帮助,欢迎您的赞赏!
微信赞赏 |
---|
![]() |
Copyright 2020 Super
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.