- Win10+WSL环境编译bilibili/ijkplayer源码
岁月神偷_4676
先谈一下遇到的问题,最棘手的问题就是wsl环境下ubuntu与win10的PATH环境变量是共享的,而在编译源码的时候用到NDK独立工具链(NDKstandalonetoolchain,大概是因为坑太多,目前已被google弃用,想了解的同学可点击此链接查看官方文档)在脚本中会去设置PATH环境变量,最后由于ubuntu的PATH环境变量共享了win10的值,导致编译失败。因为没遇到过此类问题因此
- Android播放器相关开源项目
主音King
Explayer是Google一个开源的,APP等级的媒体API,包含library和demoijkplayer是Bilibili发布的基于FFplay的轻量级Android/iOS视频播放器。实现跨平台功能,API易即成,编译配置可裁剪,方便控制安装包大小,支持硬件加速解码,更加省电,提供Android平台下应用弹幕集成解决方案。android-UniversalMusicPlayer一个音乐播
- WSL和Ubuntu编译IJKPlayer
RelinRan
ubuntulinux运维WSLIJKPlayer
Ubuntu、WSL上编译IJKPlayer,您可以按照以下步骤进行操作:系统准备#更新包sudoaptupdate#安装编译所需的依赖项sudoaptinstall-yautoconfautomakebuild-essentialcmakegitlibtoolnasmpkg-configpython3unzip#安装当前正在运行的内核版本对应的Linux内核头文件sudoapt-getinsta
- ijkplayer适配Android 11以上的版本
易寻资料
音视频android
播放视频在android11手机上各种闪退的问题,适配中发现一进入视频播放页面就会崩溃,播放在线视频时崩溃,而本地视频播放正常。崩溃日志如下:Fatal14:46:17.826Fatalsignal11(SIGSEGV),code2(SEGV_ACCERR),faultaddr0x74bdc3dd18intid4399(ff_read),pid1990(om.lindian.user)Fatal1
- github上十二款最著名的Android播放器开源项目
不合格码农
转自:https://blog.csdn.net/qq_24531461/article/details/734567941.ijkplayer项目地址:https://github.com/Bilibili/ijkplayer介绍:Ijkplayer是Bilibili发布的基于FFplay的轻量级Android/iOS视频播放器。实现了跨平台功能,API易于集成;编译配置可裁剪,方便控制安装包大
- flutter开发实战-ijkplayer视频播放器功能
BruceGwo
移动开发flutter开发实战flutterflutter音视频ijkplayer1024程序员节笔记视频播放
flutter开发实战-ijkplayer视频播放器功能使用better_player播放器进行播放视频时候,在Android上会出现解码失败的问题,better_player使用的是video_player,video_player很多视频无法解码。最终采用ijkplayer播放器插件,在flutter上使用fijkplayer插件。一、引入fijkplayer在使用fijkplayer前可以先
- ijkplayer自定义播放器
小L_d00b
ijkplayer自定义播放器教程代码在https://github.com/fly0001/ijkplayer.git
- Mac 用NDK编译ijkplayer arm64 问题总结
棍子哥丸子妹
场景:我需要用到x264库来进行我的编码。先编码x264的include和lib成功!下面在我使用ijkplayer的脚本进行链接x264的文件时,遇到的问题总结:1.找不到log2,我首先检查我编译的x264库是否可用,自己搞了一个工程,测试是可以使用的,然后到ffmpeg源码下面有个config.h去查看日志,用xcode来搜索错误的位置,我直接注释掉了(我检查了ffmpeg和x264相关的N
- Android GitHub高分优秀中文项目
KingWorld
CarGuo/GSYVideoPlayer视频播放器(IJKplayer、ExoPlayer、MediaPlayer),HTTPS,支持弹幕,外挂字幕,支持滤镜、水印、gif截图,片头广告、中间广告,多个同时播放,支持基本的拖动,声音、亮度调节,支持边播边缓存,支持视频自带rotation的旋转(90,270之类),重力旋转与手动旋转的同步支持,支持列表播放,列表全屏动画,视频加载速度,列表小窗口
- 如何用ijkplayer使用改变清晰度功能(切换码流)
andylao62
流媒体ijkplayer服务器运维
ff_ffplay.c:read_thread()chooseyourlikevideostreamidfromic->nb_streamssettost_index[AVMEDIA_TYPE_VIDEO]自适应码率切换需要服务器端和客户端同时支持,首先服务器端需要提供多码率的码流,对HLS来说,就是需要服务器端提供masterm3u8playlist,也就是通常所说的嵌套m3u8;对Dash来说
- 修复ijkplayer没有正确处理sps导致的MediaCodec解码失败问题
andylao62
ijkplayer流媒体java开发语言
播放HLS时,部分TS分片的sps排列是:000192400001103。。。0001104。。。其对应的内容是:00019240:表示AUD接着的0001:表示startcode接着的103:表示sps类型接着的就是sps的数据最后的0001104:104表示是pps数据接着的就是pps的数据这里针对这种情况做了处理,提取出其中的sps数据给到MediaCodec,避免MediaCodec初始化
- initPlayer初始化过程(一)
andylao62
流媒体androidc++ijkplayer
目录简要流程图代码分析1)so库加载及初始化2)创建Looper线程3)so相关操作setup简要本文主要介绍ijkplayer的初始过程先看LOGD/IJKMEDIA:IjkMediaPlayer_native_initD/IJKMEDIA:IjkMediaPlayer_native_setupI/IJKMEDIA:av_version_info:ff3.4--ijk0.8.7--2018010
- ijkplayer解码器的准备过程(二)
andylao62
流媒体androidjikplayer
简要本文介绍,从prepareAsync后,到onPrepared回调的过程先看LogV/IJKMEDIA:setDataSource:pathhttp://weblive.hebtv.com/live/hbws_bq/index.m3u8D/IJKMEDIA:IjkMediaPlayer_prepareAsyncD/IJKMEDIA:ijkmp_prepare_async()I/IJKMEDIA
- Android录制音频并使用ijkplayer播放
TenXu
1、使用MediaRecorder录音1.1、开始录制privateMediaRecordermMediaRecorder;privateFilemTempFile;publicvoidstartRecordAudio(Contextcontext){//临时文件if(mTmpFile==null){mTmpFile=SdcardUtils.getPublicFile(context,"recor
- 视屏解密、AVPlayer/IJKPlayer/播放画中画
独孤流
PictureInPictureDemo画中画demo:https://github.com/eye1234456/PictureInPictureDemo.git在线mp4转m3u8:https://mp4.to/m3u8/测试视频下载:https://www.cnblogs.com/v5captain/p/12144699.htmlhttps://www.jianshu.com/p/cab2c
- ijkplayer
monkey姜啦
1、延迟降低延迟处理ff_ffplay2、播放RTSP视频实时流,接着播放HTTP流第一次无法播放的问题ijkmp_prepare_async()=0Opening'http://192.168.1.254:8192'forreadingSettingdefaultwhitelist'http,https,tls,rtp,tcp,udp,crypto,httpproxy'HitDNScacheho
- 【快收藏】音视频开发开源项目!
十年编程老舅
音视频开发音视频音视频开发音视频学习路线ZLMediaKit流媒体服务器SRS
多路解码https://github.com/ithewei/hplayer/tree/master/srcGSYVideoPlayerAndroid播放器,功能非常强大https://github.com/CarGuo/GSYVideoPlayer视频播放器(IJKplayer、ExoPlayer、MediaPlayer),HTTPS支持,支持弹幕,支持滤镜、水印、gif截图,片头广告、中间广告
- 记录一次Linux下编译Android平台的ijkPlayer源码
被违规后的昵称
环境:Ubuntu18.04跟ffmpeg编译类似,不过没有ffmpeg的编译复杂。几个出错点:1.编译ssl时发生:*$sudo./compile-openssl.shall====================[*]checkarchs====================FF_ALL_ARCHS=armv5armv7aarm64x86x86_64FF_ACT_ARCHS=armv5arm
- Windows下编译Android-ijkplayer库文件
akebrt
androidlinuxubuntu
前言虽然说的是Windows下编译,其实还是用的Linux环境。在Windows10有个子系统,可以下载Ubuntu子系统来配置Linux环境。ijkplayer源码脚本不支持Windows环境编译,所以不用妄想在纯Windows环境下编译。当然将源码拉下来自己写脚本另当别论。网上大量教程都只介绍了流程,如果能每一步都正常走下来,可以直接去看Github的介绍。这里把我在编译过程中遇到的问题和一些
- Ubuntu 编译 哔哩哔哩 IJKPlayer so库,并支持RTSP
氦客
NDKubuntuandroid编译ijkPlayerRTSP
1.环境与配置1.1系统版本系统我这里使用的Ubuntu18.04.4LTS1.2更新软件源列表sudoaptupdate1.3安装gitsudoaptinstallgit1.4安装jdk我这里使用的是openjdk11.0.9.1sudoaptinstallopenjdk-11-jdk1.5安装yasmsudoaptinstallyasm1.6下载NDKndk下载地址:https://githu
- ijkplayer
不懂_a030
https://www.jianshu.com/p/c5d972ab0309前言ijkplayer是b站开源的超级好用的视频播放器喔,相信大家都早有耳闻。ijkplayerAndroid和ios都可用,还支持多种视频的硬解码。人生苦短,不如快点试一试。ijkplayer的github地址ijkplayer的编译gradle现在可以直接使用gradle引入ijkplayer了。但是,如果需要对更多格
- Windows环境Ubuntu虚拟机中编译androidijkplayer
勿忘初心_kk
AndroidFFmpegandroid
环境windows11系统安装的VMwareWorkstation虚拟机ijkplayerGithub地址:GitHub-bilibili/ijkplayer:Android/iOSvideoplayerbasedonFFmpegn3.4,withMediaCodec,VideoToolboxsupport.github上面的编译说明:gitclonehttps://github.com/Bili
- Ubuntu编译ijkplayer so库并播放本地raw/assets文件
Chin_style
音视频ijkplayerUbuntuffmpeg
博主的上一篇文章《ffmpeg的介绍,编译与使用》一,前期基础知识储备1.ijkplayer官方项目地址:https://github.com/Bilibili/ijkplayerijkplayer是一个基于ffmpeg的轻量级Android/iOS视频播放器。实现了跨平台功能,API易于集成;编译配置可裁剪,方便控制安装包大小;支持硬件加速解码,更加省电。可以通过编译来实现更多格式的支持,可以说
- Android新播放器Ijkplayer集成教程
陆小凤蔡
ijk编译环境信息Ijkplayer-0.8.8支持rtsp支持http支持hls支持rtmp支持h265支持arm64/armv7a1.引入私有库地址.repositories{maven{url'http://172.16.22.18:8081/repository/maven-public/'}...}2.在主项目中build.gradle引入以下库implementation'tv.dan
- ijkplayer-android 移植与调试日志
feier_yan
Android开发
step1:gitclonehttps://github.com/Bilibili/ijkplayer.gitijkplayer-androidcdijkplayer-androidgitcheckout-Blatestk0.8.4cdconfigrmmodule.shln-smodule-default.shmodule.sh#以上是默认的设置,也可以使用#ln-smodule-lite.shm
- swift 关于集成ijkplayer
pyj111204
记录ijkplayergithub地址:https://github.com/bilibili/ijkplayer集成参考地址:https://www.hangge.com/blog/cache/detail_1326.html
- ijkplayer.0 简介
搁浅的三刀流zoro
ijkplayer(https://github.com/Bilibili/ijkplayer)是一个基于FFmpeg的轻量级Android/iOS视频播放器开源项目。项目需求,播放实时h264裸流,最初使用自行实现的mediacodec播放,仅支持硬编码,适配没做好,并且发热情况比较厉害,故此找了些开源项目,发现ijkplayer比较适合(不过后面发现此项目长期不维护,没文档,没人解释,对简单实
- iOS直播sdk的实践探索
henry技术探索记录员
移动端直播的核心就是推流和拉流播放。刚开始选择的是LFLiveKit推流和美颜,用ijkplayer拉流播放。用两台真机测试时发现,播放时噪音很严重,而且延时挺大的。用LFLiveKit将视频录制到本地,打开播放,依然有很严重的噪音,因此排除播放环节的问题,是LFLiveKit对音频没做好降噪的处理。尝试用七牛的直播SDK,结合七牛的播放器PLPlayer,发现延时减少了很多,但七牛的美颜效果不是
- iOS在ijkplayer集成ffmpeg遇到的问题
纳兰怮翌
在使用ijkplayer集成ffmpeg的时候,执行./compile-ffmpeg.shall时报以下错误ERROR:opensslnotfound解决办法需要./init-ios.sh步骤后执行./init-ios-openssl.shcdios//这里只clean一次./compile-openssl.shclean./compile-openssl.shall./compile-ffmpe
- ijkPlayer源码分析 PacketQueue分析
baiiu
音视频&进阶ijkPlayer源码分析
前言本文介绍PacketQueue,相对于FrameQueue来说比较简单,可以类比Android中的MessageQueue。PacketQueue总体介绍单向链表结构。first_pkt、last_pkt,是链表的起点和终点结点;recycle_pkt链表用于节点复用;是一个多线程安全队列,靠等待唤醒机制保证线程安全;当遇到flush_pkt时,serial加1自增,标志着流序列变化,区分是否
- LeetCode[位运算] - #137 Single Number II
Cwind
javaAlgorithmLeetCode题解位运算
原题链接:#137 Single Number II
要求:
给定一个整型数组,其中除了一个元素之外,每个元素都出现三次。找出这个元素
注意:算法的时间复杂度应为O(n),最好不使用额外的内存空间
难度:中等
分析:
与#136类似,都是考察位运算。不过出现两次的可以使用异或运算的特性 n XOR n = 0, n XOR 0 = n,即某一
- 《JavaScript语言精粹》笔记
aijuans
JavaScript
0、JavaScript的简单数据类型包括数字、字符创、布尔值(true/false)、null和undefined值,其它值都是对象。
1、JavaScript只有一个数字类型,它在内部被表示为64位的浮点数。没有分离出整数,所以1和1.0的值相同。
2、NaN是一个数值,表示一个不能产生正常结果的运算结果。NaN不等于任何值,包括它本身。可以用函数isNaN(number)检测NaN,但是
- 你应该更新的Java知识之常用程序库
Kai_Ge
java
在很多人眼中,Java 已经是一门垂垂老矣的语言,但并不妨碍 Java 世界依然在前进。如果你曾离开 Java,云游于其它世界,或是每日只在遗留代码中挣扎,或许是时候抬起头,看看老 Java 中的新东西。
Guava
Guava[gwɑ:və],一句话,只要你做Java项目,就应该用Guava(Github)。
guava 是 Google 出品的一套 Java 核心库,在我看来,它甚至应该
- HttpClient
120153216
httpclient
/**
* 可以传对象的请求转发,对象已流形式放入HTTP中
*/
public static Object doPost(Map<String,Object> parmMap,String url)
{
Object object = null;
HttpClient hc = new HttpClient();
String fullURL
- Django model字段类型清单
2002wmj
django
Django 通过 models 实现数据库的创建、修改、删除等操作,本文为模型中一般常用的类型的清单,便于查询和使用: AutoField:一个自动递增的整型字段,添加记录时它会自动增长。你通常不需要直接使用这个字段;如果你不指定主键的话,系统会自动添加一个主键字段到你的model。(参阅自动主键字段) BooleanField:布尔字段,管理工具里会自动将其描述为checkbox。 Cha
- 在SQLSERVER中查找消耗CPU最多的SQL
357029540
SQL Server
返回消耗CPU数目最多的10条语句
SELECT TOP 10
total_worker_time/execution_count AS avg_cpu_cost, plan_handle,
execution_count,
(SELECT SUBSTRING(text, statement_start_of
- Myeclipse项目无法部署,Undefined exploded archive location
7454103
eclipseMyEclipse
做个备忘!
错误信息为:
Undefined exploded archive location
原因:
在工程转移过程中,导致工程的配置文件出错;
解决方法:
 
- GMT时间格式转换
adminjun
GMT时间转换
普通的时间转换问题我这里就不再罗嗦了,我想大家应该都会那种低级的转换问题吧,现在我向大家总结一下如何转换GMT时间格式,这种格式的转换方法网上还不是很多,所以有必要总结一下,也算给有需要的朋友一个小小的帮助啦。
1、可以使用
SimpleDateFormat SimpleDateFormat
EEE-三位星期
d-天
MMM-月
yyyy-四位年
- Oracle数据库新装连接串问题
aijuans
oracle数据库
割接新装了数据库,客户端登陆无问题,apache/cgi-bin程序有问题,sqlnet.log日志如下:
Fatal NI connect error 12170.
VERSION INFORMATION: TNS for Linux: Version 10.2.0.4.0 - Product
- 回顾java数组复制
ayaoxinchao
java数组
在写这篇文章之前,也看了一些别人写的,基本上都是大同小异。文章是对java数组复制基础知识的回顾,算是作为学习笔记,供以后自己翻阅。首先,简单想一下这个问题:为什么要复制数组?我的个人理解:在我们在利用一个数组时,在每一次使用,我们都希望它的值是初始值。这时我们就要对数组进行复制,以达到原始数组值的安全性。java数组复制大致分为3种方式:①for循环方式 ②clone方式 ③arrayCopy方
- java web会话监听并使用spring注入
bewithme
Java Web
在java web应用中,当你想在建立会话或移除会话时,让系统做某些事情,比如说,统计在线用户,每当有用户登录时,或退出时,那么可以用下面这个监听器来监听。
import java.util.ArrayList;
import java.ut
- NoSQL数据库之Redis数据库管理(Redis的常用命令及高级应用)
bijian1013
redis数据库NoSQL
一 .Redis常用命令
Redis提供了丰富的命令对数据库和各种数据库类型进行操作,这些命令可以在Linux终端使用。
a.键值相关命令
b.服务器相关命令
1.键值相关命令
&
- java枚举序列化问题
bingyingao
java枚举序列化
对象在网络中传输离不开序列化和反序列化。而如果序列化的对象中有枚举值就要特别注意一些发布兼容问题:
1.加一个枚举值
新机器代码读分布式缓存中老对象,没有问题,不会抛异常。
老机器代码读分布式缓存中新对像,反序列化会中断,所以在所有机器发布完成之前要避免出现新对象,或者提前让老机器拥有新增枚举的jar。
2.删一个枚举值
新机器代码读分布式缓存中老对象,反序列
- 【Spark七十八】Spark Kyro序列化
bit1129
spark
当使用SparkContext的saveAsObjectFile方法将对象序列化到文件,以及通过objectFile方法将对象从文件反序列出来的时候,Spark默认使用Java的序列化以及反序列化机制,通常情况下,这种序列化机制是很低效的,Spark支持使用Kyro作为对象的序列化和反序列化机制,序列化的速度比java更快,但是使用Kyro时要注意,Kyro目前还是有些bug。
Spark
- Hybridizing OO and Functional Design
bookjovi
erlanghaskell
推荐博文:
Tell Above, and Ask Below - Hybridizing OO and Functional Design
文章中把OO和FP讲的深入透彻,里面把smalltalk和haskell作为典型的两种编程范式代表语言,此点本人极为同意,smalltalk可以说是最能体现OO设计的面向对象语言,smalltalk的作者Alan kay也是OO的最早先驱,
- Java-Collections Framework学习与总结-HashMap
BrokenDreams
Collections
开发中常常会用到这样一种数据结构,根据一个关键字,找到所需的信息。这个过程有点像查字典,拿到一个key,去字典表中查找对应的value。Java1.0版本提供了这样的类java.util.Dictionary(抽象类),基本上支持字典表的操作。后来引入了Map接口,更好的描述的这种数据结构。
&nb
- 读《研磨设计模式》-代码笔记-职责链模式-Chain Of Responsibility
bylijinnan
java设计模式
声明: 本文只为方便我个人查阅和理解,详细的分析以及源代码请移步 原作者的博客http://chjavach.iteye.com/
/**
* 业务逻辑:项目经理只能处理500以下的费用申请,部门经理是1000,总经理不设限。简单起见,只同意“Tom”的申请
* bylijinnan
*/
abstract class Handler {
/*
- Android中启动外部程序
cherishLC
android
1、启动外部程序
引用自:
http://blog.csdn.net/linxcool/article/details/7692374
//方法一
Intent intent=new Intent();
//包名 包名+类名(全路径)
intent.setClassName("com.linxcool", "com.linxcool.PlaneActi
- summary_keep_rate
coollyj
SUM
BEGIN
/*DECLARE minDate varchar(20) ;
DECLARE maxDate varchar(20) ;*/
DECLARE stkDate varchar(20) ;
DECLARE done int default -1;
/* 游标中 注册服务器地址 */
DE
- hadoop hdfs 添加数据目录出错
daizj
hadoophdfs扩容
由于原来配置的hadoop data目录快要用满了,故准备修改配置文件增加数据目录,以便扩容,但由于疏忽,把core-site.xml, hdfs-site.xml配置文件dfs.datanode.data.dir 配置项增加了配置目录,但未创建实际目录,重启datanode服务时,报如下错误:
2014-11-18 08:51:39,128 WARN org.apache.hadoop.h
- grep 目录级联查找
dongwei_6688
grep
在Mac或者Linux下使用grep进行文件内容查找时,如果给定的目标搜索路径是当前目录,那么它默认只搜索当前目录下的文件,而不会搜索其下面子目录中的文件内容,如果想级联搜索下级目录,需要使用一个“-r”参数:
grep -n -r "GET" .
上面的命令将会找出当前目录“.”及当前目录中所有下级目录
- yii 修改模块使用的布局文件
dcj3sjt126com
yiilayouts
方法一:yii模块默认使用系统当前的主题布局文件,如果在主配置文件中配置了主题比如: 'theme'=>'mythm', 那么yii的模块就使用 protected/themes/mythm/views/layouts 下的布局文件; 如果未配置主题,那么 yii的模块就使用 protected/views/layouts 下的布局文件, 总之默认不是使用自身目录 pr
- 设计模式之单例模式
come_for_dream
设计模式单例模式懒汉式饿汉式双重检验锁失败无序写入
今天该来的面试还没来,这个店估计不会来电话了,安静下来写写博客也不错,没事翻了翻小易哥的博客甚至与大牛们之间的差距,基础知识不扎实建起来的楼再高也只能是危楼罢了,陈下心回归基础把以前学过的东西总结一下。
*********************************
- 8、数组
豆豆咖啡
二维数组数组一维数组
一、概念
数组是同一种类型数据的集合。其实数组就是一个容器。
二、好处
可以自动给数组中的元素从0开始编号,方便操作这些元素
三、格式
//一维数组
1,元素类型[] 变量名 = new 元素类型[元素的个数]
int[] arr =
- Decode Ways
hcx2013
decode
A message containing letters from A-Z is being encoded to numbers using the following mapping:
'A' -> 1
'B' -> 2
...
'Z' -> 26
Given an encoded message containing digits, det
- Spring4.1新特性——异步调度和事件机制的异常处理
jinnianshilongnian
spring 4.1
目录
Spring4.1新特性——综述
Spring4.1新特性——Spring核心部分及其他
Spring4.1新特性——Spring缓存框架增强
Spring4.1新特性——异步调用和事件机制的异常处理
Spring4.1新特性——数据库集成测试脚本初始化
Spring4.1新特性——Spring MVC增强
Spring4.1新特性——页面自动化测试框架Spring MVC T
- squid3(高命中率)缓存服务器配置
liyonghui160com
系统:centos 5.x
需要的软件:squid-3.0.STABLE25.tar.gz
1.下载squid
wget http://www.squid-cache.org/Versions/v3/3.0/squid-3.0.STABLE25.tar.gz
tar zxf squid-3.0.STABLE25.tar.gz &&
- 避免Java应用中NullPointerException的技巧和最佳实践
pda158
java
1) 从已知的String对象中调用equals()和equalsIgnoreCase()方法,而非未知对象。 总是从已知的非空String对象中调用equals()方法。因为equals()方法是对称的,调用a.equals(b)和调用b.equals(a)是完全相同的,这也是为什么程序员对于对象a和b这么不上心。如果调用者是空指针,这种调用可能导致一个空指针异常
Object unk
- 如何在Swift语言中创建http请求
shoothao
httpswift
概述:本文通过实例从同步和异步两种方式上回答了”如何在Swift语言中创建http请求“的问题。
如果你对Objective-C比较了解的话,对于如何创建http请求你一定驾轻就熟了,而新语言Swift与其相比只有语法上的区别。但是,对才接触到这个崭新平台的初学者来说,他们仍然想知道“如何在Swift语言中创建http请求?”。
在这里,我将作出一些建议来回答上述问题。常见的
- Spring事务的传播方式
uule
spring事务
传播方式:
新建事务
required
required_new - 挂起当前
非事务方式运行
supports
&nbs