avatar
文章
62
标签
33
分类
11
首页
归档
AI
后端
  • Java
  • Go
  • Python
前端
音视频
投资
运维
随笔
分享
Clang's Blog
首页
归档
AI
后端
  • Java
  • Go
  • Python
前端
音视频
投资
运维
随笔
分享

Clang's Blog

Go实现文件接收  
发表于2020-07-11|Go
前段时间遇到一个问题,在只有nginx的情况下,实现文件的上传,突然想着利用Go可以非常简单的来实现。分为两个部分:服务端和客户端。代码如下所示: 服务端: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455package mainimport ( "fmt" "io" "net/http" "os")const ( upload_path string = "/Users/chenhu/Desktop/upload/")func helloHandle(w http.ResponseWriter, r *http.Request) { io.WriteString(w, "hello world!")}//上传func uploadHandle(w...
自定义Spring Cache的key
发表于2019-06-22|Java
在多租户系统中,为了统一处理系统缓存,需在缓存组件中加上租户Id,以下是自定义自定义Spring Cache的key步骤。 1、继承RedisCacheManager123456789101112131415public class RedisAutoCacheManager extends RedisCacheManager { public RedisAutoCacheManager(RedisCacheWriter cacheWriter, RedisCacheConfiguration defaultCacheConfiguration) { super(cacheWriter, defaultCacheConfiguration); } /** * 从上下文中获取租户ID,重写@Cacheable value值 * @param name * @return */ @Override public Cache getCache(String name)...
Vue实现跨域请求
发表于2019-02-02|前端
一般解决跨域问题可以通过CORS跨域、JSONP和反向代理跨域。下面分别介绍这三种跨域方式: 1、CORS以netty为例,支持跨域请求需要配置的返回头信息。 1234567891011FullHttpResponse response = null;String responseStr = result.toString() + "xxxxx";response.headers().set("response", MD5Util.getMD5Code(responseStr, true));response.headers().set(HttpHeaderNames.ACCESS_CONTROL_EXPOSE_HEADERS, "response"); // 有增加头的配置response.headers().set(HttpHeaderNames.CONTENT_TYPE,...
重放攻击的实现方案
发表于2018-06-23|Java
...
macOS下如何编译FFmpeg for macOS APP
发表于2017-08-11|音视频
我们今天来说说如何编译出适用于macOS APP的库,包括动态库和静态库。 一、基本编译1、首先我们下载一个最新的ffmpeg源码。 1git clone https://git.ffmpeg.org/ffmpeg.git 2、配置./configure选项,这个要注意需要设置对macOS最低版本的要求,否则是默认当前本机的最新系统如,这样的话在使用库的时候,如果是APP要运行在10.10及之下的系统时候,就会报错。 1--extra-cflags=-mmacosx-version-min=10.8 --extra-ldflags=-mmacosx-version-min=10.8 3、执行./configure内容如下: 1./configure --target-os=darwin --enable-static --enable-swscale --enable-nonfree --enable-gpl --enable-version3 --enable-nonfree --disable-programs ...
iOS直播技术分享-直播播放器(六)
发表于2016-10-25|音视频
随着互联网技术的飞速发展,移动端播放视频的需求如日中天,由此也催生了一批开源、闭源的播放器,但是无论这个播放器功能是否强大、兼容性是否优秀,它的基本模块通常都是由以下部分组成:事务处理、数据的接收和解复用、音视频解码以及渲染,其基本框架如下图所示: 针对各种铺天盖地的播放器项目,选取了比较出众的ijkplayer进行源码剖析。它是一个基于FFPlay的轻量级Android/iOS视频播放器,实现了跨平台的功能,API易于集成;编译配置可裁剪,方便控制安装包大小。 一、总体说明打开ijkplayer,可看到其主要目录结构如下: tool - 初始化项目工程脚本config - 编译ffmpeg使用的配置文件extra - 存放编译ijkplayer所需的依赖源文件, 如ffmpeg、openssl等ijkmedia - 核心代码  ijkplayer - 播放器数据下载及解码相关  ijksdl - 音视频数据渲染相关ios - iOS平台上的上层接口封装以及平台相关方法android -...
iOS直播技术分享-延迟优化(五)
发表于2016-10-25|音视频
音视频的直播系统是一个复杂的工程系统,要做到非常低延迟的直播,需要复杂的系统工程优化和对各组件非常熟悉的掌握。这里分享几个简单而常用的调优技巧。 编码优化1、确保 Codec 开启了最低延迟的设置。Codec 一般都会有低延迟优化的开关,对于 H.264 来说其效果尤其明显。很多人可能不知道 H.264 的解码器正常情况下会在显示之前缓存一定的视频帧,对于 QCIF 分辨率大小的视频(176 × 144)一般会缓存 16 帧,对于 720P 的视频则缓存 5 帧。对于第一帧的读取来说,这是一个很大的延迟。如果你的视频不是使用 H.264 来编码压缩的,确保没有使用到 B 帧,它对延迟也会有较大的影响,因为视频中 B 帧的解码依赖于前后的视频帧,会增加延迟。2、编码器一般都会有码控造成的延迟,一般也叫做初始化延迟或者视频缓存检验器 VBV...
iOS直播技术分享-推流和传输(四)
发表于2016-10-25|音视频
推流是直播的第一公里,直播的推流对这个直播链路影响非常大,如果推流的网络不稳定,无论我们如何做优化,观众的体验都会很糟糕。所以也是我们排查问题的第一步,如何系统地解决这类问题需要我们对相关理论有基础的认识。 推送协议 下面就先介绍一下都有哪些推送协议,他们在直播领域的现状和优缺点。RTMPWebRTC基于 UDP 的私有协议 1、RTMPRTMP 是 Real Time Messaging Protocol(实时消息传输协议)的首字母缩写。该协议基于 TCP,是一个协议族,包括 RTMP 基本协议及 RTMPT/RTMPS/RTMPE 等多种变种。RTMP 是一种设计用来进行实时数据通信的网络协议,主要用来在 Flash/AIR 平台和支持 RTMP 协议的流媒体/交互服务器之间进行音视频和数据通信。支持该协议的软件包括 Adobe Media Server/Ultrant Media Server/red5 等。RTMP...
iOS直播技术分享-视频编码(三)
发表于2016-07-11|音视频
x264是一种免费的、具有更优秀算法的符合H.264/MPEG-4 AVC视频压缩编码标准格式的编码库。它同xvid一样都是开源项目,但x264是采用H.264标准的,而xvid是采用MPEG-4早期标准的。由于H.264是2003年正式发布的最新的视频编码标准,因此,在通常情况下,x264压缩出的视频文件在相同质量下要比xvid压缩出的文件要小,或者也可以说,在相同体积下比xvid压缩出的文件质量要好。它符合GPL许可证。 iOS视频编码分为硬编码和软编码:硬编码就是利用手机专用的硬件进行编码,软编码是用CPU进行编码。由于苹果在iOS8开放的硬编码的API,故现在大多数的直播应用都是采用的硬编码。 iOS硬编码从iOS8开始,苹果开放了硬解码和硬编码API,框架为 VideoToolbox.framework, 此框架需要在iOS8及以上的系统上才能使用。 此框架中的硬解码API是几个纯C函数,在任何OC或者 C++代码里都可以使用。使用的时候,首先,要把VideoToolbox.framework...
iOS直播技术分享-音频编码(二)
发表于2016-07-11|音视频
音频基础知识PCM格式pcm是经过话筒录音后直接得到的未经压缩的数据流数据大小=采样频率采样位数声道*秒数/8采样频率一般是44k,位数一般是8位或者16位,声道一般是单声道或者双声道pcm属于编码格式,就是一串由多个样本值组成的数据流,本身没有任何头信息或者帧的概念。如果不是音频的录制者,光凭一段PCM数据,是没有办法知道它的采样率等信息的。 AAC格式初步了解,AAC文件可以没有文件头,全部由帧序列组成,每个帧由帧头和数据部分组成。帧头包含采样率、声道数、帧长度等,有点类似MP3格式。 AAC编码初始化编码转换器123456789101112131415161718192021222324252627282930313233343536373839404142-(BOOL)createAudioConvert{ //根据输入样本初始化一个编码转换器 if (m_converter != nil){ return TRUE; } AudioStreamBasicDescription...
1…567
avatar
Clang
文章
62
标签
33
分类
11
Follow Me
公告
如果尚未看到成果,那是因为付出的努力还不够多,如果尚未梦想成真,那是因为等待的时间还不够久。笑到最后的人永远最精彩,最成功,最执着。
最新文章
一键搭建 WordPress + MySQL + phpMyAdmin 环境(支持 PHP 版本选择 & 自定义配置)
一键搭建 WordPress + MySQL + phpMyAdmin 环境(支持 PHP 版本选择 & 自定义配置)2025-06-08
AI网址大全
AI网址大全2025-02-16
基于C++线程延迟处理的 ROS 消息逻辑优化
基于C++线程延迟处理的 ROS 消息逻辑优化2024-11-20
使用 Docker 运行 Node.js:无需依赖系统版本,快速切换、环境隔离
使用 Docker 运行 Node.js:无需依赖系统版本,快速切换、环境隔离2024-11-19
Python多进程编程与进程间通信
Python多进程编程与进程间通信2024-11-19
分类
  • AI7
  • Go16
  • Java8
  • Python3
  • ROS8
  • 分享3
  • 前端1
  • 投资1
标签
ROS 运维 FFmpeg SEO 播放器 Spring Cloud Gateway Hexo C++ 秒杀 MySQL IDEA 音视频 iOS 多租户 分享 macOS Java Python SaaS Spring Cloud Go 算法 Github Vue 随笔 Spring Boot WordPress AI CDN Mybatis 跨域 基金 Spring Cache
归档
  • 六月 2025 1
  • 二月 2025 1
  • 十一月 2024 6
  • 七月 2024 3
  • 六月 2024 4
  • 五月 2024 6
  • 四月 2024 4
  • 四月 2023 2
网站信息
文章数目 :
62
最后更新时间 :
©2016 - 2025 By Clang
框架 Hexo 6.3.0|主题 Butterfly 5.3.3