码农小明
码龄10年
  • 492,135
    被访问
  • 56
    原创
  • 39,700
    排名
  • 254
    粉丝
关注
提问 私信

个人简介:后端攻城狮一枚,熟悉C/Cpp Node.js。

  • 加入CSDN时间: 2012-03-11
博客简介:

彼此当年少,莫负好时光

博客描述:
操千曲而后晓声,观千剑而后识器。
查看详细资料
  • 5
    领奖
    总分 1,297 当月 61
个人成就
  • 获得563次点赞
  • 内容获得254次评论
  • 获得2,291次收藏
  • GitHub 获得137Stars
创作历程
  • 1篇
    2022年
  • 15篇
    2021年
  • 2篇
    2020年
  • 4篇
    2019年
  • 26篇
    2018年
  • 2篇
    2017年
  • 6篇
    2016年
成就勋章
TA的专栏
  • Node.js
    3篇
  • OWT
    3篇
  • Android JNI
    3篇
  • Linux C
    11篇
  • FFmpeg 3.x API应用
    5篇
  • ffmpeg
    14篇
  • 网络编程
    4篇
  • FFmpeg杂记
    4篇
  • Android 笔记
    6篇
  • c语言
    8篇
  • 杂七杂八
    4篇
  • 密码学
    5篇
  • AES
    3篇
  • 数学
    2篇
  • 流媒体
    3篇
  • 音视频
    8篇
  • RSA
    2篇
  • 数据结构与算法
    1篇
  • WebRTC
    5篇
  • C++
    10篇
兴趣领域 设置
  • 服务器
    linux
  • 最近
  • 文章
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

FFmpeg生成静音音频和黑屏视频命令

开发中有时需要生成静音音频或者纯色黑屏视频为便于测试或其他特殊应用场景,可以使用FFmpeg命令-f lavfi来搞定。生成静音音频可以使用anullsrc或者aevalsrc来生成静音音频,aevalsrc还可以生成其他类型声音。以下命令生成10s特定采样率和声道的静音音频,可以指定编码器进行编码。anullsrcffmpeg -f lavfi -i anullsrc -t 10 silent-audio.mp3# orffplay -f lavfi -i anullsrc=r=44100:
原创
发布博客 2022.01.06 ·
2115 阅读 ·
0 点赞 ·
0 评论

ffmpeg-4.4.1-2021.12.23.tar.gz

发布资源 2021.12.23 ·
gz

FFmpeg HDR视频转SDR视频命令

之前蓝光盘电影多是AVC 1080p 8bit SDR格式视频,近两年4K电影流行,下载的蓝光电影多是HEVC 2160p 10bit HDR视频格式。ffprobe查看有如下属性:# 10bit HDRStream #0:0(eng): Video: hevc (Main 10), yuv420p10le(tv, bt2020nc/bt2020/smpte2084), 3840x2160 [SAR 1:1 DAR 16:9], 23.98 fps, 23.98 tbr, 1k tbn, 23.98
原创
发布博客 2021.12.22 ·
2718 阅读 ·
2 点赞 ·
1 评论

FFmpeg 视频旋转处理命令

因为某种原因发现这个特别好玩,总结一下,为了演示效果还特意做了个字母小视频,眼快闪瞎了。
原创
发布博客 2021.12.17 ·
2586 阅读 ·
1 点赞 ·
0 评论

测试gif

发布动态 2021.12.17

AAC ADTS 媒体流格式分析 及 FFmpeg解析mp4的aac码流方法

和其他编码格式一样,AAC只是数据编码格式,码流组织格式有ADIF(Audio Data Interchange Format) 和 ADTS (Audio Data Transport Stream)。ADIF 与 ADTS的显著区别就是前者的编码信息存在一个固定的地方,后者的编码信息是每一个包中都有。所以ADIF主要用于磁盘存储文件,ADTS主要用于渐进式传输的网络流,本文主要分析ADTS流。ADTS 流格式ADTS流格式为ADTS头部加AAC裸数据。[ADTS Header](AAC ES d
原创
发布博客 2021.12.04 ·
562 阅读 ·
0 点赞 ·
0 评论

H.264媒体流AnnexB和AVCC格式分析 及 FFmpeg解析mp4的H.264码流方法

H264码流分两种组织方式,一种是AnnexB格式,一种是AVCC格式。首先要了解的是H.264编码规范只是规定了如何编码,并没有规定以何种方式来排列编码后的数据。就如同AES算法只是规定如何加密一组数据,并没有强制规定如果分组。H.264规范没有规定如何组织数据,但是在附录B中提供了一种可选方案,即Annex B格式。H.264 NALU 概念H.264视频编码后的数据叫NALU(Network Abstraction Layer Units)。NALU有多种类型,分为两大类:VCL(Vide.
原创
发布博客 2021.11.25 ·
1122 阅读 ·
0 点赞 ·
0 评论

blink是什么

发布动态 2021.11.04

cmake CMakeLists.txt 常用模板

三年前整理过Makefile常用模板 ,一直写手写Makefile,近来不得不用到cmake,实践了一下感觉真香!功能强大!还是那句话 自己总结方便查阅,要是能帮到别人那是极好的~cmake命令依赖CMakeList.txt文件,解析成makefile文件,然后make编译。先按顺序介绍其最简的常用语法,详细语法查阅cmake官网,最后整理完整版示例。常见语法介绍cmake版本必选项。放在第一行,指定cmake最低版本。cmake_minimum_required(VERSION 3.5.1.
原创
发布博客 2021.11.02 ·
515 阅读 ·
5 点赞 ·
3 评论

深入研究C++虚函数表

class Base {public: virtual void f1(){ std::cout << __PRETTY_FUNCTION__ << std::endl; } virtual void f2(){ std::cout << __PRETTY_FUNCTION__ << std::endl; } virtual void f3(){ std::cout
原创
发布博客 2021.10.16 ·
429 阅读 ·
4 点赞 ·
3 评论

C/C++ 字节对齐 和 类占用空间

基本数据类型长度目前系统以64位居多,下面列出64位系统下的基本数据类型长度。嵌入式开发或者其他对数据长度敏感的场景,建议使用int8_t / int16_t / int32_t等明确长度的类型。数据类型长度/字节char1short2int4long8long long8float4double8 (32位系统为4)void*8bool1结构体/类 字节对齐为了CPU高效访问数据,操作系统会对结构体/类等非
原创
发布博客 2021.10.15 ·
140 阅读 ·
3 点赞 ·
0 评论

OWT Server 基于 RabbitMQ 的 RPC 工作模式分析

上篇文章提到过,OWT Server是模块化的结构,各个模块是可以独立部署的,模块之间的RPC调用都是基于消息队列RabbitMQ实现的。这篇文章分析一下OWT Server 基于RabbitMQ的RPC都有几种工作模式。RabbitMQ 工作模式先简单复习一下RabbitMQ 的工作模式,详细浏览其官网介绍。RabbitMQ有3个重要概念 交换机exchange、路由键routing_key、队列queue。1. 简单模式一个生产者、一个消费者,不需要设置交换机(使用默认的交换机)。2.
原创
发布博客 2021.09.16 ·
323 阅读 ·
2 点赞 ·
1 评论

OWT Server 整体架构分析

基础模块架构图按自己的理解用 visio 大体画了一下。前一篇博客讲过OWT Server是模块化的设计,不同模块可以分开部署,便于新手入门,下面画了OWT Server的一些基础模块(支持WebRTC开会)的框架图,如果把这几个模块搞清楚了,差不多对OWT Server也就理解了。模块内部的 RPC 调用都是通过 RabbitMQ 消息队列实现的,都不是直接调用,即上图中 所有的虚线都是通过RabbitMQ间接通信的,而不是直接连接。模块内部流交换(Internal IO)默认用的是
原创
发布博客 2021.09.12 ·
1231 阅读 ·
4 点赞 ·
3 评论

OWT (Open WebRTC Toolkit) 5.0 初体验与开发环境搭建

先打个草稿,有空补充。介绍Demo 体验提供docker开发环境搭建正常流程官方介绍曲线救国网络不佳境外服务器后记有问题可以留言。
原创
发布博客 2021.09.09 ·
2224 阅读 ·
4 点赞 ·
16 评论

Linux C 语言日期时间函数总结

C 语言获取系统时间相关函数总结记录一下,用的时候不至于再去到处找了。函数精度说明time()秒获取系统时间ftime()秒 + 毫秒获取系统时间 1/10^3gettimeofday()秒 + 微秒获取系统时间 1/10^6clock_gettime()秒 + 纳秒获取系统时间 1/10^9sleep()秒延时函数usleep()微秒延时函数 1/10^6struct tm-存储年月日时分秒的结构loc.
原创
发布博客 2021.09.05 ·
122 阅读 ·
0 点赞 ·
0 评论

Linux编译FFmpeg libx264 libx265 libfdk-aac libmp3lame libvpx libopus等

有些Linux发行版可以在线安装ffmpeg,但是因为版权关系不能包含我们所需的编码器,有时候还是需要手动编译。下面介绍一些常见编码器的安装。libx264、libx265、libfdk-aac、libmp3lame、libvpx libopus。不需要的可以不安装,最终ffmpeg configure不指定特定的编码器就可以了。不想自己编译的可以直接下载我编译好的,GNU C Library (GNU libc) 版本大于等于2.17的系统都可以使用。常见的CentOS 7和Ubuntu16.04以上
原创
发布博客 2021.08.12 ·
443 阅读 ·
1 点赞 ·
1 评论

C++ 线程池

总结一下C++里面的线程池,用的时候直接Copy就可以了。为什么要用线程池呢?打个比方:不用线程池的话 每次有活,老板就要招一个人去干,干完活就把工人辞了。如果用线程池的话就是,老板招几个人干活,把任务按需分配给这几个人,活少的时候可能这几个人会闲着,但是活多的时候可以让这几个人排队一直干活。这种场景主要考虑如果活都比较小,后者可以省去频繁招聘员工带来的成本,忽略员工没活的时候成本消耗。就是说频繁的新建线程比较耗资源,如果同时新建线程比较多超过了一定的数量也会占用比较多的处理器资源,而线程空跑的时候资.
原创
发布博客 2021.04.10 ·
952 阅读 ·
0 点赞 ·
0 评论

Node.js 调用 C++ 方法 / C++ Addons 详解

最近开发涉及到了一些Node.js调用C++的地方,于是网上搜了一下,发现网上好多文章都是比较片面的东西,没法直接使用。于是花点时间总结一下。Android开发中Java 调用C++的部分叫JNI,Rust语言中调用C++的部分叫FFI,Node.js中调用C++的部分叫C++ Addons。本文总结Node.js使用非N-API方式调用C++函数的示例,主要针对node 8版本,不同版本会有api差异。Node.js 调用C++方法,其实是调用 C++ 代码生成的动态库,可以使用require(.
原创
发布博客 2021.01.24 ·
2524 阅读 ·
4 点赞 ·
2 评论

Linux C/C++ 中锁的使用总结

本文总结C和C++中各种锁以及使用方式,主要是C语言中的互斥锁 mutex 和读写锁 rwlock,以及C++中的互斥锁mutex以互斥锁管理。C++中的各种mutex其实是对C语言中的mutex的面相对象的封装,此外的mutex管理部分的类其实是用RAII的风格对mutex对象进行进一步包装。此外线程间通信还有信号量,因为它不叫锁就不说了,还有个非常不常用的自旋锁也不说了,还有名字很罕见的闩 latch 与屏障 barrier 也不说了。感兴趣自己看 cppreference.com吧。1. C .
原创
发布博客 2020.07.27 ·
2728 阅读 ·
0 点赞 ·
1 评论

Linux I/O 多路复用之select、poll、epoll详解与代码示例

如果写过最基础的TCP服务,那就应该清楚 accept 和 recv 函数是阻塞式的(默认),也就是说程序就卡在这个地方等待,直到有连接或者数据来到。如果不用多线程的话,一旦有数据到来就会一直处理这个连接的数据,而没法接收新的连接。其实操作系统可以在一个线程里轮询式处理这些事务,也就是常说的I/O多路复用。select,poll,epoll 都是I/O多路复用的机制。I/O多路复用就是通过一种机制,一个进程可以监视多个描述符,一旦某个描述符就绪(一般是读就绪或者写就绪),能够通知程序进行相应的读写操作。s
原创
发布博客 2020.06.27 ·
700 阅读 ·
2 点赞 ·
0 评论
加载更多