Libtorrent 之 NDK 编译

[libtorrent] windows搭建 libtorrent 开发环境 操作系统:win10 开发工具:VS2019 (参考文档:libtorrent) 搭建 libtorrent 步骤: 一. 安装 vcpkg 和 boost 1.安装 vcpkg 到本地 git clone https://github.com/microsoft/vcpkg 2.执行bootstrap-vcpkg.bat 脚本 .\vcpkg\bootstrap-vcpkg.bat 3.添加vcpkg环境变量 环境变量->PTAH->添加 vcpkg... 阅读详情

项目要求:实现Android端P2P视频点播软件   

转载请注明出处: http://blog.youkuaiyun.com/echoaiya/article/details/44196771

方案:Libtorrent + VLC

参考:(1) Tribler-streaming 

            (2) RuTracker-2.6.5.5

            (3) frostwire-android

            (4) frostwire-jlibtorrent

            (5) libbtstream


说明:

(1)Tribler-streaming JAVA语言,是国外某大学学生团队实现的android平台P2P视频点播系统,其采用的是VLC+libtorrent,文档说明中提到实现了P2P视频点播,不过提供的代码验证不通过,且未提供JNI代码,libtorrent.so库中有些底层方法不知是如何实现的。其JAVA层修改片优先级以实现播放的方法可以参考一下。底层代码在com.softwarrior.libtorrent.LibTorrent.java,播放代码在org.videolan.vlc.gui.video.VideoPlayerActivity。


(2)RuTracker-2.6.5.5 JAVA语言,网上最新版本APK是RuTracker-2.9.6.5,只找到2.6.5.5的代码,它与俄罗斯种子网站RuTracker应该是一家。RuTracker-2.6.5.5主要作用是从几个种子网站搜索种子并下载,经测试其代码可用,且最重要的是提供了libtorrent的JNI编译代码(本人尝试多次ndk编译libtorrent-1.0.2均失败,发现不能直接编译,需要修改libtorrent-1.0.2,如何修改就不得而知了)。不过该libtorrent版本较低,要换新版本可能会比较麻烦。


(3)frostwire-android JAVA语言其实现了类似于RuTracker-2.6.5.5的功能,UI更加漂亮,搜索的种子网站也较多。其依赖于frost-wire-jlibtorrent和frostwire-common两个JAVA库。


(4)frostwire-jlibtorrent JAVA语言,利用swig将C++写的libtorrent-1.0.2转换为Java,且ndk编译生成jlibtorrent.so库,方便调用libtorrent底层实现。找到此代码非常开心,以为有它万事大吉,谁知frostwire作者在写libtorrent.i时,忽略了好些libtorrent的类和方法,更郁闷的是,按照作者的方法死活编译不过ndk,无法自己生成jlibtorrent.so库,浪费了我半个月的时间,纠结得要死,最后还是无奈放弃。


(5)libbtstream C++语言,网上找到的一个据说实现了libtorrent顺序下载片并播放的API库,代码由C++语言编写。原本打算将libbtstream转为JAVA,调用frostwire-jlibtorrent实现功能,无奈libbtstream所需的两个类torrent.cpp和torrent_plugin.cpp没有被编入frostwire-jlibtorrent,在重新编译forstwire-jlibtorrent未果的

编译frostwire项目jlibtorrent_jni.cpp 在上一篇文章中已经编译好了boost库,libtorrent库,openssl,接下来编译libtorrent_jni.cpp; 这个文件是供jni调用底层libtorrent库的接口,为了方便在java程序中使用这些接口,需将libtorrent_jni.cpp编译成dll动态库; 在项目frostwire-jlibtorrent-master中已经给出了编译的脚本build_win 阅读详情

相关推荐

BitTorre真相:安卓BT下载工具的识别与替代方案

BitTorrent协议是P2P文件分发的基础技术标准,其核心原理在于分布式哈希表(DHT)和种子交换机制,技术价值在于去中心化、带宽复用与断点续传。在安卓平台,该协议广泛应用于离线资源下载、局域网文件共享及边缘设备缓存等场景,但需依赖libtorrent等成熟实现。然而当前大量标称‘BitTorre’的APK实为混淆概念的套壳应用,既不兼容标准BitTorrent协议,也不具备DHT节点发现或PEX交换能力。用户真实需求实为轻量BT客户端、RTSP流缓存或私有P2P网络构建——这些均可通过Termux+l

weixin_29161785的博客 86

Libtorrent 安装、编译与使用(附 Boost 的编译与使用)

libtorrent 是BitTorrent协议的一个实现,其目标是提供一个轻量级、快速、可扩展且易于集成到现有应用程序中的解决方案。它不仅支持标准的BitTorrent协议,还包含了对现代扩展如DHT(分布式哈希表)、UPnP/NAT-PMP端口映射和Web种子的支持。 本文详细介绍了 Libtorrent 的编译与使用。

一些笔记 1522

libtorrent 开源库:深入解析与应用场景

本文还有配套的精品资源,点击获取 简介:libtorrent 是一个针对 BitTorrent 协议的 C++ 实现,旨在提供高效且用户友好的服务。该库通过多线程和异步操作优化性能,使用智能内存管理策略,以及提供简洁的 API 和多种协议支持,为开发者提供全面的 P2P 文件共享解决方案。核心组件包括 session、torrent、peers、trackers 和 DHT...

weixin_35761094的博客 2799

libtorrent源码(windows编译使用)

网上大部分libtorrrent源码只能在Linux上编译 现提供能在Windows编译使用的libtorrrent源码

安卓基于jlibtorrent实现种子文件边下边播的android例子

一个很简单易懂的安卓边下边播种子文件的例子,使用jlibtorrent库实现。

MacTeX+TeXstudio:Macbook配置本地Latex看这一篇就够了

这个博客记录本人在MacBook上配置本地Latex的流程,其中选择的编译环境为MacTeX,编辑器为TeXstudio。采用的原因主要两点:一个是本人配置的原因主要是用来撰写毕业论文,希望能够尽可能简化设置流程,专注内容表达;第二是由于本人还有一个windows系统的笔记本,想要编辑器在专注写作体验的同时在两个系统上能够都适配,从而减少切换效率,故选择此组合。这篇文章介绍并详细记录了本人的安装流程,有相同需求的同志也可借鉴。

Katherine-XY的博客 6978

盘点军工行业软件研发的那些常用GJB标准

GJB5000、2786、438、141、102、8114等...

文章主要涉及嵌入式软件开发、测试、项目管理等,欢迎交流,共同进步。 9433

八大核心深度学习算法详解:从CNN到Transformer的完整指南

深度学习作为人工智能的核心技术,通过多层神经网络模拟人脑学习机制。其基本原理是利用反向传播算法优化网络参数,从数据中自动提取特征表示。这一技术价值在于能够处理高维复杂数据,在图像识别、自然语言处理等领域实现突破性进展。卷积神经网络(CNN)通过局部连接和权值共享有效处理图像数据,而Transformer架构基于自注意力机制革新了序列建模方式。在实际工程实践中,CNN广泛应用于计算机视觉任务,如图像分类和目标检测;Transformer则成为自然语言处理的主流架构,支撑着BERT、GPT等预训练模型。本文系统

aoe41606的博客 430

如何点亮一颗sensor

要点亮一个sensor需要从,时钟、sensorI2C,供电,reset脚,mipi的配置几个方面一一确认。 reset脚拉高 给sensor的时钟有没有。(目前用到的常为24MHZ) 供电 查看sensor的数据手册,看有几个电源,用示波器量一下是否为手册规定的电压 比如:DVDD 数字电压: AVDD模拟电压 DOVDD芯片引脚出来的电压等为多少。 sensor的I2C能否抓到 将I2C的口对应上,用示波器量取i2c的波形。 检查有应答并且数据正确。读写地址是否正...

weixin_40787463的博客 3645

GEE|基于时间序列特征的山东省玉米随机森林分类代码

主题思路: 本实验为二分类实验,分类目标包括:玉米、其他(建筑、水体、水稻、 裸地、森林、小麦、道路、大蒜等),采用人工设计的特征指数的时间序列特征为分类依据,选取分类器为:随机森林分类器,并选取样本集中 70%作为训练样本,30%作为测试样本,通过调整随机森林棵数,调整分类器结构。选取以下参数进行分类: ⚫ 时间尺度:1990 年 4 月 15 日 - 1990 年 9 月 30 日 ⚫ 空间尺度:山东省 ⚫ 影像融合时间间隔:16天 ⚫ 特征值选择:['nir','ndvi'...

weixin_46493028的博客 7466

以 Cloud 为核心的设备 mTLS 证书体系:从产品需求到 OP-TEE 安全落地

本文探讨了以云端为核心的物联网设备mTLS证书体系构建方案。文章从产品需求出发,分析了云端必须采用mTLS+证书体系管理设备身份的原因,指出静态Token方案的三大缺陷:身份不可控、运营不可控和审计不可控。重点阐述了mTLS在产品中的核心功能是加密传输和双向认证,并详细列出了云端PKI、设备注册中心等必备组件。在设备侧,强调必须通过OP-TEE技术保护私钥安全,提出了一个包含密钥生成、CSR导出等功能的TA设计方案。最后,文章给出了云端端到端流程示例,说明如何将证书生命周期管理转化为可运营的产品能力,包括自

Interview_TC的博客 639

基于jeecgboot3.9.0的项目管理——项目工作台(二)

基于jeecgboot3.9.0的项目管理——项目工作台(二)

宁波阿成的博客 204

DCNv4+YOLOv8:2024最新可变形卷积赋能目标检测,从原理到实战的科研级优化指南

从理解DCNv4“自适应变形卷积核”的核心思想,到亲手将其嵌入YOLOv8并验证在复杂场景的检测效果,再到基于此探索属于自己的科研与工程方向——这个过程能让你深刻理解目标检测中“特征自适应提取”的核心价值。现在就开始行动,相信你会在目标检测的“自适应特征提取”之路上,走出一条属于自己的技术路径。实验通常会证明:嵌入DCNv4后,YOLOv8在复杂场景下的检测精度提升3-5个百分点,尤其是小目标和遮挡目标的AP提升更为明显,而推理速度仅下降5%-10%(可通过模型量化进一步优化)。2024年最新推出的。

m0_64661770的博客 267

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

上一篇: Ubuntu下如何运行exe
下一篇: P2P协议概述
echoaiya
博客等级 码龄16年 23粉丝 15原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值