跳转至内容
  • 社区首页
  • 版块
  • 最新
  • 标签
  • 热门
折叠

GitHub中文论坛

wenchao1024W

wenchao1024

@wenchao1024
关于
帖子
25
主题
22
分享
0
群组
0
粉丝
1
关注
0

帖子

最新 最佳 有争议的

  • 能打开的兄弟能帮我,点个星星吗?非常感谢
    wenchao1024W wenchao1024

    深入研究 kvm,ceph,fuse 特性

    项目地址:[https://github.com/0voice/kernel_awsome_feature]
    (https://github.com/0voice/kernel_awsome_feature)

    开源分享

  • 【新Repo分享】深入研究 kvm,ceph,fuse 特性,包含开源项目,代码案例,文章,视频,架构脑图等
    wenchao1024W wenchao1024

    eaa66f4e-6dba-4892-9f8e-889ead9fe0e0-image.png

    4aa3547a-2b80-4f06-bcb3-a7d96e7c9eed-image.png
    52c759d2-277a-4848-88c8-31031bfe0450-image.png
    4146635d-397b-4ce2-9b6c-e5c0f43bf343-image.png
    982a6d06-cae8-46ee-b782-132b8fd06c9e-image.png
    6d6ef593-1c09-4839-b47c-006118ad48b1-image.png

    项目地址:https://github.com/0voice/kernel_awsome_feature

    感兴趣的朋友 ,记得star哈!

    开源分享

  • 【开源分享】深挖 Linux 内核的新功能特性,以 io_uring, cgroup, ebpf, llvm 为代表,包含开源项目,代码案例,文章,视频,架构脑图等
    wenchao1024W wenchao1024

    1、io_uring

    io_uring(以前称为aioring)是一个用于存储设备异步 I/O操作的Linux 内核系统调用接口,解决了与/或/等函数提供的类似接口的性能问题,用于对文件描述符访问的数据进行操作。

    img

    文档

    img

    开源项目

    img

    精选文章

    img

    视频

    img

    二、cgroup

    cgroups,其名称源自控制组群(英语:control groups)的简写,是Linux内核的一个功能,用来限制、控制与分离一个进程组的资源(如CPU、内存、磁盘输入输出等)。

    这个项目最早是由Google的工程师(主要是Paul Menage和Rohit Seth)在2006年发起,最早的名称为进程容器(process containers)。在2007年时,因为在Linux内核中,容器(container)这个名词有许多不同的意义,为避免混乱,被重命名为cgroup,并且被合并到2.6.24版的内核中。自那以后,又添加了很多功能。

    img

    文档

    img

    开源项目

    img

    文章

    img

    视频

    img

    三、ebpf——Linux 内核中顶级子模块

    eBPF 是一项革命性的技术,起源于 Linux 内核,可以在操作系统内核中运行沙盒程序。它用于安全有效地扩展内核的功能,而无需更改内核源代码或加载内核模块。

    从历史上看,由于内核具有监督和控制整个系统的特权,操作系统一直是实现可观察性、安全性和网络功能的理想场所。同时,操作系统内核由于其核心作用和对稳定性和安全性的高要求,难以演进。因此,与在操作系统之外实现的功能相比,操作系统级别的创新率传统上较低。

    img

    文档

    img

    开源项目

    img

    文章

    img

    视频

    img

    四、llvm

    LLVM 项目是模块化和可重用的编译器和工具链技术的集合。尽管有它的名字,LLVM 与传统的虚拟机几乎没有关系。“LLVM”这个名字本身不是首字母缩写词;它是项目的全名。

    LLVM 最初是伊利诺伊大学的一个研究项目,其目标是提供一种现代的、基于 SSA 的编译策略,能够支持任意编程语言的静态和动态编译。从那时起,LLVM 已经发展成为一个由多个子项目组成的伞形项目,其中许多子项目被各种 商业和开源项目用于生产,并被广泛用于学术研究。LLVM 项目中的代码根据 “Apache 2.0 License with LLVM exceptions”获得许可。

    img

    文档

    img

    img

    img

    img

    LLVM命令指南

    img

    img

    img

    img

    开源项目

    img

    文章

    img

    视频

    img

    以上所有资源内容,都整合到我的Github项目中了:https://github.com/0voice/kernel_new_features

    目前项目还在不断完善当中,有需要的开发者,可以去下载学习。 记得给小弟一个Star,谢谢!

    开源分享 linux 内核 iouring cgroup ebpf llvm

  • 从事【音视频】的开发者,看过来,如果记不住FFmepg命令,可以收藏,不记得的时候,掏出来翻翻
    wenchao1024W wenchao1024

    ffmpeg --help大概分为6个部分,具体如下:

    • ffmpeg信息查询部分
    • 公共操作参数部分
    • 文件主要操作参数部分
    • 视频操作参数部分
    • 音频操作参数部分
    • 字母操作参数部分

    查看支持的容器格式

    # 封装和解封装
    ffmpeg -formats
    # 解封装
    ffmpeg -demuxers
    # 封装
    ffmpeg -muxers
    # 查看FLV封装器的参数支持
    ffmpeg -h muxer=flv
    # 查看FLV解封装器的参数支持
    ffmpeg -h demuxer=flv
    

    查看支持的编解码格式

    # 编解码
    ffmpeg -codecs
    # 解码
    ffmpeg -decoders
    # 编码
    ffmpeg -encoders
    # 查看H.264(AVC)的编码参数支持
    ffmpeg -h encoder=h264
    # 查看H.264(AVC)的解码参数支持
    ffmpeg -h decoder=h264
    

    查看支持的滤镜

    # 滤镜
    ffmpeg -filters
    # 查看colorkey滤镜的参数支持
    ffmpeg -h filter=colorkey
    

    转码

    ffmpeg -i WMV9_1280x720.wmv -vcodec mpeg4 -b:v 200 -r 15 -an output.mp4 
    # -i 文件 (后缀名)封装格式
    # -vcodec 视频编码格式
    # -b:v 视频码率
    # -r 视频帧率
    # -an 不包括音频
    

    ffprobe常用命令

    -show_packets 查看多媒体数据包信息

    字段 说明
    codec_type 多媒体类型,如视频包、音频包等
    stream_index 多媒体的stream索引
    pts 多媒体的显示时间值
    pts_time 根据不同格式计算过后的多媒体的显示时间
    dts 多媒体解码时间值
    dts_time 根据不同格式计算过后的多媒体的解码时间
    duration 多媒体包占用的时间值
    duration_time 根据不同格式计算过后的多媒体包所占用的时间值
    size 多媒体包的大小
    pos 多媒体包所在的文件偏移位置
    flags 多媒体包标记,如关键包与非关键包的标记

    -show_format 查看多媒体的封装格式

    字段 说明
    filename 文件名
    nb_streams 媒体中包含的流的个数
    nb_programs 节目数
    format_name 使用的封装模块的名称
    format_long_name 封装的完整名称
    start_time 媒体文件的起始时间
    duration 媒体文件的总时间长度
    size 媒体文件的大小
    bit_rate 媒体文件的码率

    -show_frames 查看视频文件中的帧信息

    属性 说明 值
    media_type 帧的类型(视频、音频、字幕等) video
    stream_index 帧所在的索引区域 0
    key_frame 是否为关键帧 1
    pkt_pts Frame包的pts 0
    pkt_pts_time Frame包的pts的时间显示 0.080000
    pkt_dts Frame包的dts 80
    pkt_dts_time Frame包的dts的时间显示 0.080000
    pkt_duration Frame包的时长 N/A
    pkt_duration_time Frame包的时长时间显示 N/A
    pkt_pos Frame包所在文件的偏移位置 344
    width 帧显示的宽度 1280
    height 帧显示的高度 714
    pix_fmt 帧的图像色彩格式 yuv420p
    pict_type 帧类型 I

    -show_streams 查看多媒体文件中的流信息

    属性 说明 值
    index 流所在的索引区域 0
    codec_name 编码名 h264
    codec_long_name 编码全名 MPEG-4 part 10
    profile 编码的profile High
    level 编码的level 31
    has_b_frames 包含B帧信息 2
    codec_type 编码类型 video
    codec_time_base 编码的时间戳计算基础单位 1/50
    pix_fmt 图像显示的色彩格式 yuv420p
    coded_width 图像的宽度 1280
    coded_height 图像的高度 714
    codec_tag_string 编码的标签数据 [0][0][0][0]
    r_frame_rate 实际帧率 25/1
    avg_frame_rate 平均帧率 25/1
    time_base 时间基数(用来进行timestamp计算) 1/1000
    bit_rate 码率 200000
    max_bit_rate 最大码率 N/A
    nb_frames 帧数 N/A

    -printf_format或-of 格式化输出支持XML、INI、JSON、CSV、FLAT等

    ffplay

    可视化

    Visualize information exported by some codecs.

    http://ffmpeg.org/ffmpeg-all.html#codecview

    https://trac.ffmpeg.org/wiki/Debug/MacroblocksAndMotionVectors

    ffmpeg -h filter=codecview
    
    • Visualize forward predicted MVs of all frames using

      ffplay -flags2 +export_mvs input.mp4 -vf codecview=mv_type=fp
      
    • Visualize multi-directionals MVs of P and B-Frames using

      ffplay -flags2 +export_mvs input.mp4 -vf codecview=mv=pf+bf+bb
      

    ffmpeg转封装格式

    • 需要知道 源容器 和 目标容器 的可容纳的编码格式

    • 编码格式如果相互兼容,可以用-c copy拷贝原有的stream

      ffmpeg -i input.mp4 -c copy -f flv output.flv

    • 编码格式如果不兼容,需要转化成目标文件支持的编码

      ffmpeg -i input_ac3.mp4 -vcodec copy -acodec aac -f flv output.flv

    HLS

    1. FFmpeg转HLS举例

      常规的从文件转换HLS直播时:

      ffmpeg -re -i input.mp4 -c copy -f hls -bsf:v h264_mp4toannexb output.m3u8
      # -bsf:v h264_mp4toannexb 作用是将MP4中的H.264数据转换成H.264 AnnexB标准编码,AnnexB标准的编码常见于实时传输流中
      

    如果源文件为FLV、TS等可以作为直播传输流的视频,则不需要这个参数。

    1. ffmpeg推流上传HLS相关的M3U8以及TS文件

      Nginx配置webdav模块

      ffmpeg -re -i input.mp4 -c copy -f hls -hls_time 3 -hls_list_size 0 -method PUT -t 30 http://127.0.0.1/test/output.m3u8
      

    音视频文件音视频流抽取

    1. FFmpeg抽取音视频文件中的AAC音频流 ffmpeg -i input.mp4 -vn -acodec copy output.aac

    2. FFmpeg抽取音视频文件中的H.264视频流 ffmpeg -i input.mp4 -vcodec copy -an output.h264

    3. FFmpeg抽取音视频文件中的H.265视频流(前提文件视频编码格式为hevc)

      ffmpeg -i input.mp4 -vcodec copy -an -bsf hevc_mp4toannexb -f hevc output.hevc
      

      ffmpeg转码

    h264转h265(HEVC)

    ffmpeg -i input.mp4 -c:v libx265 -vtag hvc1 h265_output.mp4
    

    aac转MP3(需要安装libmp3lame)

    ffmpeg -i AVC_high_1280x720_2013.mp4 -vn -acodec libmp3lame -f mp3 out.mp3
    

    x264

    安装

    $git clone git://git.videolan.org/x264.git
    $cd x264
    $./configure –enable-shared 
    $make
    $sudo make install
    

    查看

    x264 --full help
    

    设置编码参数

    1. 编码器预设参数设置preset 通常通过preset来设置编码的速度,影响清晰度 ffmpeg -i input.mp4 -vcodec libx264 -preset ultrafast -b:v 2000k output.mp4

    2. H.264编码优化参数tune 在使用ffmpeg与x264进行H.264直播编码并进行推流时,只用tune参数的zerolatency将会提升效率,因为其降低了因编码导致的延迟。

    3. H.264的profile与level设置 baseline profile编码的H.264视频不会包含B Slice,而使用main profile、high profile编码出来的视频,均可以包含B Slice ffmpeg -i input.mp4 -vcodec libx264 -profile:v baseline -level 3.1 -s 352x288 -an -y -t 10 output_baseline.ts ffmpeg -i input.mp4 -vcodec libx264 -profile:v high -level 3.1 -s 352x288 -an -y -t 10 output_high.ts

      查看包含B帧的情况:

      ffprobe -v quiet -show_frames -select_streams v output_baseline.ts | grep "pict_type=B" | wc -l

      当进行实时流媒体直播时,采用baseline编码相对main或high的profile会更可靠些。

    4. 控制场景切花关键帧插入参数 sc_threshold ffmpeg通过-g参数设置以帧数间隔为GOP的长度,但是当遇到场景切换时,例如从一个画面突然变成另一个画面时,会强行插入一个关键帧,这是GOP的间隔将会重新开始,可以通过使用sc_threshold参数进行设定以决定是否在场景切换时插入关键帧。 ffmpeg命令控制编码时的GOP大小 ffmpeg -i AVC_high_1280x720_2013.mp4 -c:v libx264 -g 50 -t 60 output.mp4 为了使得GOP的插入更加均匀,使用参数 sc_threshold ffmpeg -i AVC_high_1280x720_2013.mp4 -c:v libx264 -g 50 -sc_threshold 0 -t 60 -y output.mp4

    5. 设置x264内部参数x264opts 去掉B帧 ffmpeg -i input.mp4 -c:v libx264 -x264opts "bframes=0" -g 50 -sc_threshold 0 output.mp4 控制I帧、P帧、B帧的频率与规律 例如设置GOP中,每2个P帧之间存放3个B帧: ffmpeg -i input.mp4 -c:v libx264 -x264opts "bframes=3:b-adapt=0" -g 50 -sc_threshold 0 output.mp4

    6. CBR 恒定码率设置参数 nal-hrd (固定码率好处,可能是网络传输)

      VBR:可变码率

      CBR:恒定码率

      ABR:平均码率。VBR和CBR混合产物。

      ffmpeg -i input.mp4 -c:v libx264 -x264opts "bframes=10:b-adapt=0" -b:v 1000k -maxrate 1000k -minrate 1000k -bufsize 50k -nal-hrd cbr -g 50 -sc_threshold 0 output.ts
      # 设置B帧的个数,并且是每2个P帧之间包含10个B帧
      # 设置视频码率为 1000 kbit/s
      # 设置最大码率为 1000 kbit/s
      # 设置最小码率为 1000 kbit/s
      # 设置编码的buffer大小为 50KB
      # 设置 H.264 的编码HRD信号形式为 CBR
      # 设置每50帧一个GOP
      # 设置场景切换不强行插入关键帧
      

    MP3/AAC

    1. MP3转码 ffmpeg -i INPUT -acodec libmp3lame output.mp3

    2. 参数控制

      # -q 控制码率(0~9) 高->低
      ffmpeg -i input.mp3 -acodec libmp3lame -q:a 8 output.mp3
      # -b 设置为CBR
      ffmpeg -i input.mp3 -acodec libmp3lame -b:a 64k output.mp3
      # -abr 设置为abr编码
      ffmpeg -i input.mp3 -acodec libmp3lame -b:a 64k -abr 1 output.mp3
      

    ffmpeg流媒体

    ffmpeg发布与录制RTMP流

    FFmpeg操作RTMP的参数

    参数 类型 说明
    rtmp_app 字符串 RTMP流发布点,又称为APP
    rtmp_buffer 整数 客户端buffer大小(单位:毫秒),默认为3秒
    rtmp_conn 字符串 在RTMP的Connect命令中增加自定义AMF数据
    rtmp_flashver 字符串 设置模拟的flashplugin的版本号
    rtmp_live 整数 指定RTMP流媒体播放类型,具体如下: - any:直播或点播 - live:直播 - recorded:点播
    rtmp_pageurl 字符串 RTMP在Connect命令中设置的PageURL字段,其为播放时所在的Web页面URL
    rtmp_playpath 字符串 RTMP流播放的Stream地址,或者成为秘钥,或者成为发布流
    rtmp_subscribe 字符串 直播名称,默认设置为rtmp_playpath的值
    rtmp_swfhash 二进制 解压swf文件后的SHA256的hash值
    rtmp_swfsize 整数 swf文件解压后的大小,用于swf认证
    rtmp_swfurl 字符串 RTMP的Connect命令中设置的swfURL播放器的URL
    rtmp_swfverify 字符串 设置swf认证时swf文件的URL地址
    rtmp_tcurl 字符串 RTMP的Connect命令中设置的tcURL目标发布点地址,一般形如 rtmp://xxx.xxx.xxx/app
    rtmp_listen 整数 开启RTMP服务时所监听的端口
    listen 整数 与rtmp_listen相同
    timeout 整数 监听rtmp端口时设置的超时时间,以秒为单位
    1. rtmp_app、rtmp_playpath 参数

      通过rtmp_app、rtmp_playpath参数设置rtmp的推流发布点

      ffmpeg -re -i AVC_high_1280x720_2013.mp4 -c copy -f flv -rtmp_app live -rtmp_playpath play rtmp://127.0.0.1

      等价于

      ffmpeg -re -i AVC_high_1280x720_2013.mp4 -c copy -f flv rtmp://127.0.0.1/live/play

      ffmpeg录制RTSP流

    FFmpeg操作RTSP的参数

    参数 类型 说明
    initial_pause 布尔 建立连接后暂停播放
    rtsp_transport 标记 设置RTSP传输协议,具体如下: - udp:UDP - tcp:TCP -udp_multicast:UDP多播协议 - http:HTTP隧道
    rtsp_flags 标记 RTSP使用标记,具体如下: - filter_src:只接收指定IP的流 - listen:设置为被动接收模式 - prefer_tcp:TCP亲和模式,如果TCP可用则首选TCP传输
    allowed_media_types 标记 设置允许接收的数据模式(默认全部开启),具体如下: - video:只接收视频 - audio:只接收音频 - data:只接收数据 - subtitle:只接收字幕
    min_port 整数 设置最小本地UDP端口,默认为5000
    max_port 整数 设置最大本地UDP端口,默认为65000
    timeout 整数 设置监听端口超时时间
    reorder_queue_size 整数 设置录制数据Buffer的大小
    buffer_size 整数 设置底层传输包Buffer的大小
    user-agent 字符串 用户客户端标识
    1. TCP方式录制RTSP直播流

      ffmpeg默认使用的rtsp拉流方式为UDP,为了避免丢包导致的花屏、绿屏、灰屏、马赛克等问题,将UDP改为TCP传输:

    ffmpeg -rtsp_transport tcp -i rtsp://127.0.0.1/test.mkv -c copy -f mp4 output.mp4
    
    1. User-Agent设置参数

      ffmpeg -user-agent "Alex-Player" -i rtsp://input:554/live/1/stream.sdp -c copy -f mp4 -u output.mp4
      

      FFmpeg录制HTTP流

    FFmpeg操作HTTP的参数

    参数 类型 说明
    seekable 布尔 设置HTTP连接为可seek操作
    chunked_post 布尔 使用Chunked模式post数据
    http_proxy 字符串 设置HTTP代理传输数据
    headers 字符串 自定义HTTP Header数据
    content_type 字符串 设置POST的内容类型
    user_agent 字符串 设置HTTP请求客户端信息
    multiple_requests 布尔 HTTP长连接开启
    post_data 二进制 设置将要POST的数据
    cookies 字符串 设置HTTP请求时写代码的Cookies
    icy 布尔 请求ICY源数据:默认开关
    auth_type 整数 HTTP验证类型设置
    offset 整数 初始化HTTP请求时的偏移位置
    method 字符串 发起HTTP请求时使用的HTTP的方法
    reconnect 布尔 在EOF之前断开发起重连
    reconnect_at_eof 布尔 在得到EOF时发起重连
    reply_code 整数 作为HTTP服务时向客户端反馈状态码

    FFmpeg录制和发布TCP与UDP流

    略

    FFmpeg推多路流

    1. 推流(tee协议输出多路流) ffmpeg -re -i AVC_high_1280x720_2013.mp4 -vcodec libx264 -acodec aac -map 0 -f flv "tee:rtmp://127.0.0.1/live/p1|rtmp://127.0.0.1/live/p2"
    2. 验证 ffmpeg -i rtmp://127.0.0.1/live/p1 -i rtmp://127.0.0.1/live/p2

    ffmpeg滤镜使用

    http://ffmpeg.org/ffmpeg-filters.html

    FFmpeg滤镜Filter描述格式

    1. FFmpeg滤镜Filter的参数排列方式 [输入流或标记]滤镜参数[临时标记名];[输入流或标记]滤镜参数[临时标记名]… 输入两个文件,一个视频,一个图片,将logo进行缩放,然后放在视频的左上角:

      ffmpeg -i input.mp4 -i input.jpg -filter_complex " [1:v] scale=176:144[logo];[0:v][logo]overlay=x=0:y=0" output.mp4
      # [0:v]/[1:v]代表第几个输入的视频
      
    2. FFmpeg为视频加水印

    • drawtext滤镜

      ffmpeg -h filter=drawtext
      # 文字水印
      ffmpeg -i input.mp4 -ss 50 -vf "drawtext=fontsize=100:fontfile=/usr/share/fonts/truetype/freefont/FreeSerif.ttf :text='Hello World':fontcolor='yellow':x=20:y=20" output.mp4
      # 动态日期
      ffmpeg -i input.mp4 -ss 50 -vf "drawtext=fontsize=100:fontfile=/usr/share/fonts/truetype/freefont/FreeSerif.ttf :text='%{localtime\:%Y\-%m\-%d %H-%M-%S}':fontcolor='yellow':x=20:y=20" output.mp4
      # 闪烁
      ffmpeg -i input.mp4 -ss 50 -vf "drawtext=fontsize=100:fontfile=/usr/share/fonts/truetype/freefont/FreeSerif.ttf :text='%{localtime\:%Y\-%m\-%d %H-%M-%S}':fontcolor='yellow':x=20:y=20:enable=lt(mod(t\,3)\,1)" output.mp4
      
    • movie滤镜

      # 图片水印
      ffmpeg -i input.mp4 -vf "movie=logo.png[wm];[in][wm]overlay=30:10[out]" output.mp4
      # colorkey 半透明
      ffmpeg -i input.mp4 -ss 55 -vf "movie=../picture/3d_data.png,colorkey=black:1.0:0.1[wm];[in][wm]overlay=30:10[out]" output.mp4
      
    • overlay滤镜

      # 画中画
      ffmpeg -re -i input.mp4 -vf "movie=sub.mp4,scale=480x320[test];[in][test]overlay[out]" -vcodec libx264 output.flv
      # 跑马灯
      ffmpeg -re -i input.mp4 -vf "movie=sub.wmv,scale=480x320[test];[in][test]overlay=x='if(gte(t,2), -w+(t-2)*50, NAN)':y=0[out]" -vcodec libx264 output.flv
      # 视频多宫格处理
      ffmpeg -i input1.mp4 -i input2.mp4 -i input3.mp4 -i input4.mp4 -filter_complex "
      nullsrc=size=1280x720 [background];
      [0:v] setpts=PTS-STARTPTS, scale=640x360 [upleft];
      [1:v] setpts=PTS-STARTPTS, scale=640x360 [upright];
      [2:v] setpts=PTS-STARTPTS, scale=640x360 [downleft];
      [3:v] setpts=PTS-STARTPTS, scale=640x360 [downright];
      [background][upleft] overlay=shortest=1 [background+upleft];
      [background+upleft][upright] overlay=shortest=1:x=640 [background+up];
      [background+up][downleft] overlay=shortest=1:y=360 [background+up+downleft];
      [background+up+downleft][downright] overlay=shortest=1:x=640:y=360
      " output.mp4
      

    FFmpeg音频流滤镜操作

    1. 双声道合并单声道 fmpeg -i input.mp3 -ac 1 output.mp3

    2. 双声道提取

      • map_channel ffmpeg -i input.mp3 -map_channel 0.0.0 left.mp3 -map_channel 0.0.1 right.mp3
      • pan ffmpeg -i input.mp3 -filter_complex "[0:0]pan=1c|c0=c0[left];[0:0]pan=1c|c0=c1[right]" -map "[left]" left.mp3 -map "[right]" right.mp3
    3. 双声道转双音频流

      ffmpeg -i input.mp4 -filter_complex channelsplit=channel_layout=stereo output.mka
      ffprobe output.mka
      # 可以看到有两个stream
      

    不常用,大多数播放器也只会播放第一个流

    1. 单声道转双声道 ffmpeg -i left.aac -ac 2 output.m4a 这样的双声道并不是真正的双声道,而是单声道处理成的多声道,效果不会比原来多声道效果好

    2. 两个音频源合并双声道 ffmpeg -i left.mp3 -i right.mp3 -filter_complex "[0:a][1:a]amerge=inputs=2[aout]" -map "[aout]" output.mka

    3. 多个音频合并为多声道

      ffmpeg -i front_left.wav -i front_right.wav -i front_center.wav -i lfe.wav -i back_left.wav -i back_right.wav -filter_complex "[0:a][1:a][2:a][3:a][4:a][5:a]amerge=inputs=6[aout]" -map "[aout]" output.wav
      

      FFmpeg音频音量探测

    4. 音频音量获得 ffmpeg -i input.wav -filter_complex volumedetect -f null -

    5. 绘制音频波形

      ffmpeg -i input.wav -filter_complex "showwavespic=s=640x120" -frames:v 1 output.png
      # 不通声道的波形图
      ffmpeg -i input.wav -filter_complex "showwavespic=s=640x120:split_channels=1" -frames:v 1 output.png
      

    FFmpeg为视频加字母

    1. ASS字母流写入视频流 ffmpeg -i input.mp4 -vf ass=t1.ass -f mp4 output.mp4

    2. ASS字母流写入封装容器

      ffmpeg -i input.mp4 -vf ass=t1.ass -acodec copy -vcodec copy -scodec copy output.mp4
      # 输入的视频文件汇总原本同样带有字幕流,希望使用t1.ass字幕流,通过map写入
      # 下面命令会分别将第一个输入文件的第一个流和第二个流与第二个输入文件的第一个流写入output.mkv
      ffmpeg -i input.mp4 -i t1.ass -map 0:0 -map 0:1 -map 1:0 -acodec copy -vcodec copy -scodec copy output.mkv
      

    FFmpeg视频抠图合并

    1. chromakey 抠图和背景视频合并的操作

      # 查询颜色支持
      ffmpeg -colors
      # chromakey滤镜将绿色背景中的人物抠出来,贴到input.mp4为背景的视频中
      ffmpeg -i input.mp4 -i input_green.mp4 -filter_complex "[1:v]chromakey=Green:0.1:0.2[ckout];[0:v][ckout]overlay[out]" -map "[out]" output.mp4
      # FFmpeg中除了有chromakey滤镜外,还有colorkey参数,chromakey滤镜主要用于YUV数据,所以一般来说做绿幕处理更有优势;而colorkey处理纯色均可以,因为colorkey主要用于RGB数据。
      

    FFmpeg 3D视频处理

    • stereo3d
      

      滤镜

      # 黄蓝
      ffplay -vf "stereo3d=sbsl:aybd" AVC_high_1280x720_2013.mp4
      # 红蓝
      ffplay -vf "stereo3d=sbsl:aybg" AVC_high_1280x720_2013.mp4
      

    FFmpeg定时视频截图

    • vframe参数截取一张图片 ffmpeg -i input.flv -ss 00:00:7.435 -vframes 1 output.png

    • fps
      

      滤镜定时获得图片

      # 每隔1秒钟生成一张PNG图片
      ffmpeg -i input.flv -vf fps=1 out%d.png
      # 每隔一封中生成一张jpg图片
      ffmpeg -i input.flv -vf fps=1/60 out%d.jpg
      # select 按照关键帧截取图片
      ffmpeg -i input.flv -vf "select='eq(pict_type,PICT_TYPE_I)'" -vsync vfr thumb%04d.png
      

    FFmpeg 生成测试源数据

    1. 音频测试流 lavfi 模拟音频源的abuffer、aevalsrc、anullsrc、flite、anoisesrc、sine滤镜生成音频流

      # 白噪声
      ffmpeg -re -f lavfi -i aevalsrc="-2+random(0)" -t 5 output.mp3
      # 正弦波
      ffmpeg -re -f lavfi -i "sine" -t 5 output.mp3
      
    2. 视频测试流 通过FFmpeg模拟多种视频源:allrgb、allyuv、color、haldclutsrc、nullsrc、rgbtestsrc、smptebars、smptehdbars、testsrc、testsrc2、yuvtestsrc

      # 生成长度为5.3秒、图像大小为QCIF分辨率、帧率为25fps的视频图像数据,并编码成H.264
      ffmpeg -re -f lavfi -i testsrc=duration=5.3:size=qcif:rate=25 -vcodec libx264 -r:v 25 output.mp4
      # 纯红
      ffmpeg -re -f lavfi -i color=c=red@0.2:s=qcif:r=25 -vcodec libx264 -r:v 25 output.mp4
      # 随机雪花
      ffmpeg -re -f lavfi -i "nullsrc=s=256x256,geq=random(1)*255:128:128" -vcodec libx264 -r:v 25 output.mp4
      

    FFmpeg对音视频倍速处理

    1. atempo音频倍速处理 取值范围:0.5 ~ 2.0

      # 半速处理
      ffmpeg -i input.wav -filter_complex "atempo=tempo=0.5" -acodec aac output.aac
      
    2. setpts视频倍速处理 使用PTS控制播放速度的

      # 半速处理
      ffmpeg -re -i input.mp4 -filter_complex "setpts=PTS*2" output.mp4
      

    ffmpeg采集设备

    1. Linux下查看设备列表 ffmpeg -h demuxer=fbdev

    2. Linux采集设备fbdev FrameBuffer是一个比较有年份的设备,专门用于图像展示操作,早期的图形界面也是基于FrameBuffer进行绘制的,有时在向外界展示Linux的命令行操作又不希望别人看到你的桌面时,可以通过获取FrameBuffer设备图像数据进行编码后推流或录制:

      ffmpeg -framerate 30 -f fbdev -i /dev/fb0 output.mp4
      # ctrl+alt+F1 进入命令行界面
      # ctrl+alt+F7 进入图形界面
      
    3. Linux采集设备v4l2 v4l2主要用来采集摄像头,而摄像头通常支持多种像素格式,有些摄像头还支持直接输出已经编码好的H.264数据

      • 查看参数 ffmpeg -h demuxer=v4l2
      • 查看v4l2摄像头锁支持的色彩格式及分辨率 ffmpeg -hide_banner -f v4l2 -list_formats all -i /dev/vide0
      • 采集摄像头 ffmpeg -hide_banner -s 1920x1080 -i /dev/vide0 output.avi
    4. Linux采集设备x11grab

      Linux下面采集桌面图像时,通常采用x11grab设备采集图像,输入设备的设备名规则:

      # 桌面录制(帧率:25,图像分辨率:1366x768,采集的设备:0.0)
      ffmpeg -f x11grab -framerate 25 -video_size 1366x768 -i :0.0 out.mp4
      # 桌面录制指定起始位置(:0.0+300,200 指定了x坐标300,y坐标200)
      # 注意:video_size不要超过实际采集区域的大小
      ffmpeg -f x11grab -framerate 25 -video_size 352x288 -i :0.0+300,200 out.mp4
      # 桌面录制带鼠标记录的视频
      ffmpeg -f x11grab -video_size 1366x768 -follow_mouse 1 -i :0.0 out.mp4
      

    其他

    x265安装

    1. 下载

      1. 网站1:http://www.videolan.org/developers/x265.html hg clone http://hg.videolan.org/x265
      2. 网站2:https://bitbucket.org/multicoreware/x265 hg clone https://bitbucket.org/multicoreware/x265
    2. 编译

      sudo apt-get install mercurial cmake cmake-curses-gui build-essential yasm
      cd x265/build/linux
      ./make-Makefiles.bash
      make
      sudo make install
      

    DTS、PTS 的概念

    DTS、PTS 的概念如下所述:

    • DTS(Decoding Time Stamp):即解码时间戳,这个时间戳的意义在于告诉播放器该在什么时候解码这一帧的数据。
    • PTS(Presentation Time Stamp):即显示时间戳,这个时间戳用来告诉播放器该在什么时候显示这一帧的数据。

    需要注意的是:虽然 DTS、PTS 是用于指导播放端的行为,但它们是在编码的时候由编码器生成的。

    当视频流中没有 B 帧时,通常 DTS 和 PTS 的顺序是一致的。但如果有 B 帧时,就回到了我们前面说的问题:解码顺序和播放顺序不一致了。

    比如一个视频中,帧的显示顺序是:I B B P,现在我们需要在解码 B 帧时知道 P 帧中信息,因此这几帧在视频流中的顺序可能是:I P B B,这时候就体现出每帧都有 DTS 和 PTS 的作用了。DTS 告诉我们该按什么顺序解码这几帧图像,PTS 告诉我们该按什么顺序显示这几帧图像。顺序大概如下:

       PTS: 1 4 2 3
       DTS: 1 2 3 4
    Stream: I P B B
    

    其他常用命令

    1、将文件当作源推送到RTMP服务器

    ffmpeg -re -i localFile.mp4 -c copy -f flv rtmp://server/live/streamName
    

    参数解释 -r 以本地帧频读数据,主要用于模拟捕获设备。表示ffmpeg将按照帧率发送数据,不会按照最高的效率发送

    2、将直播文件保存至本地

    ffmpeg -i rtmp://server/live/streamName -c copy dump.flv
    

    3、将其中一个直播流中的视频改用H.264压缩,音频不变,推送到另外一个直播服务器

    ffmpeg -i rtmp://server/live/originalStream -c:a copy -c:v libx264 -vpre slow -f flv rtmp://server/live/h264Stream
    

    4、将其中一个直播流中的视频改用H.264压缩,音频改用aac压缩,推送到另外一个直播服务器

    ffmpeg -i rtmp://server/live/originalStream -c:a libfaac -ar 44100 -ab 48k -c:v libx264 -vpre slow -vpre baseline -f flv rtmp://server/live/h264Stream
    

    5、将其中一个直播流中的视频不变,音频改用aac压缩,推送到另外一个直播服务器

    ffmpeg -i rtmp://server/live/originalStream -acodec libfaac -ar 44100 -ab 48k -vcodec copy -f flv rtmp://server/live/h264_AAC_Stream
    

    6、将一个高清流复制为几个不同清晰度的流重新发布,其中音频不变

    ffmpeg -re -i rtmp://server/live/high_FMLE_stream -acodec copy -vcodec x264lib -s 640×360 -b 500k -vpre medium -vpre baseline rtmp://server/live/baseline_500k -acodec copy -vcodec x264lib -s 480×272 -b 300k -vpre medium -vpre baseline rtmp://server/live/baseline_300k -acodec copy -vcodec x264lib -s 320×200 -b 150k -vpre medium -vpre baseline rtmp://server/live/baseline_150k -acodec libfaac -vn -ab 48k rtmp://server/live/audio_only_AAC_48k
    

    7、将当前摄像头以及扬声器通过DSHOW采集,使用H.264/AAC压缩后推送到RTMP服务器

    ffmpeg -r 25 -f dshow -s 640×480 -i video=”video source name”:audio=”audio source name” -vcodec libx264 -b 600k -vpre slow -acodec libfaac -ab 128k -f flv rtmp://server/application/stream_name
    

    8、将一个JPG图片经过H.264压缩后输出为MP4文件

    ffmpeg -i INPUT.jpg -an -vcodec libx264 -coder 1 -flags +loop -cmp +chroma -subq 10 -qcomp 0.6 -qmin 10 -qmax 51 -qdiff 4 -flags2 +dct8x8 -trellis 2 -partitions +parti8x8+parti4x4 -crf 24 -threads 0 -r 25 -g 25 -y OUTPUT.mp4
    

    9、将MP3转化为AAC

    ffmpeg -i 20120814164324_205.wav -acodec  libfaac -ab 64k -ar 44100  output.aac
    

    10、将AAC文件转化为flv文件,编码格式采用AAC

    ffmpeg -i output.aac -acodec libfaac -y -ab 32 -ar 44100 -qscale 10 -s 640*480 -r 15 outp
    

    本文涉及的资料全部打包放到我Github仓:
    GitHub:2022年,最新 ffmpeg 资料整理,项目(调试可用),命令手册,文章,编解码论文,视频讲解,面试题全套资料
    有需要的可以前去下载,或者觉得还不错,请给我Star,感谢支持!

    开源分享 音视频流媒体开发

  • ffmpeg 资料合集
    wenchao1024W wenchao1024

    2022年,最新 ffmpeg 资料整理,项目(调试可用),命令手册,文章,编解码论文,视频讲解,面试题全套资料:

    https://github.com/0voice/ffmpeg_develop_doc

    9dc6525a-569c-4fff-9860-a84b36999fc4-image.png

    开源分享

  • 都2022年了,这个20篇Linux内存管理的期刊论文,你读了吗?
    wenchao1024W wenchao1024

    都2022年了,这个20篇Linux内存管理的期刊论文,你读了吗?

    img

    No1.《Linux内存管理分析与研究》

    部分摘要: 内存管理系统是操作系统中最为重要的部分,因为系统的物理内存总是少于系 统所需要的内存数量。为发挥内存的最大作用,各种操作系统采用了不同的管理 策略。在 Linux 操作系统中采用分页式的内存管理方式,而它的内存管理算法采 用的是经典的伙伴算法。即:把所有的空闲页面分为 10 个块组,每组中块的大小 是 2 的幂次方个页面,例如,第 0 组中块的大小都为 20 (1 个页面),第 1 组中块 的大小为都为 21 (2 个页面),第 9 组中块的大小都为 29 (512 个页面)。也就是说, 每一组中块的大小是相同的,且这同样大小的块形成一个链表。

    img

    No2.《Linux内存管理的设计与实现》

    部分摘要: Linux操作系统采用 分页式 内存管理方式 ,它的 内存管理算法 是经 典的伙伴算法 。 伙伴算法中对于伙伴内存块的定义要求互为伙伴块的两个内存块大小相等 、地址连续 并且 出 自同一个 更大的 内存块 。这样的要求使得 操作系统在整个 内存 的管理上 十分简洁 、 动态分配和 回收 内存 算法简便 。然而 , 在 一些情况下会 出现系统 中存在着 足够大 的连 续 内存 , 但 足这 样的连续 内存不符合伙 伴算法要 求因此无法 得到合并利 用 , 在 一定程度上 影响少 了整个 系统的 内存利用率 。

    img

    No3.《Linux内核中内存池的实现及应用》

    部分摘要:

    表对页面进行管理 [ 1] 。为了支持 虚拟存储器 , Linux系统采用 LRU分页替换算法载 入进程 。虚拟存储器由存储器管理机制及一个大容 量的快速硬盘存储器支持 ,它的实现基于局部性原 理 。早期的 Linux内存管理虽然没有 2.6.16版本 复杂, 但已经奠定了写时复制、需求加载等内存管理 的基本思想。 Linux是针对有 MMU的处理器设计 的 ,对具有 MMU的处理器而言, 虚拟地址被送到内 存管理单元 MMU,把虚拟地址映射为物理地址 。通 过赋予每个任务不同的虚拟地址到物理地址的转换 映射, 支持不同任务之间的保护 。每个用户进程 4 GB长度的虚拟内存被划分成固定大小的页面 。 其中 0至 3 GB是用户态空间, 由各进程独占 ;3 GB 到 4 GB是内核态空间, 由所有进程共享, 但只有内 核态进程才能访问。

    img

    No4.《Linux内核中动态内存检测机制的研究》

    部分摘要: 近年来 , Linux 操作系 统 换源代码开放 、 功能齐全、 系统稳定等特性而从各种操 作系 统中脱颖而 出 , 也 越来越广泛的运用 于服务器领域中 。 隨着应用 的 越来越广, 其 安全问题不断地被曝露出 来 。 操作系 统作为整个软件系 统的基础, 其安全关系 到整个 系 统的安全 。 在操作系 统漏洞中 , 内 存 问 题首当其冲 , 研究表明 , 内 存 问题是造成漏 洞 的主 要原 因 。

    img

    No5.《Linux内核伙伴系统分析》

    部分摘要: 本文针对 Linux 内核实现的伙伴系统进行了抽象分析, 并通过实例演示了算法的执行过程. 分析了用于物 理地址空间管理的三级数据结构及其关系. 在此基础上, 详细描述了用于分配和回收页框的伙伴算法. 对于待回收 的内存块而言, 计算其伙伴的索引及合并内存块的索引是回收操作的关键, 讨论了相关计算方法的几条结论并予以 证明。

    img

    No6.《基于内存池的空间数据调度算法》

    部分摘要: 操作系统存储管理的主要目的是提高内存利用率,方便 用户使用内存。在多道程序环境中,多个作业须共享内存资 源,能否合理有效地利用内存对计算机整体性能影响很大。 目前操作系统大多采用页式或段页式内存管理方法[1],但这 种方法并不适用于调度 GIS 中具有尺度维的空间数据。由于 空间数据具有数据量大、类型复杂等特点,因此在浏览、导 航、编辑时,需要频繁申请释放内存空间,容易产生页面“抖 动”等问题[2]而降低 GIS 的效率。解决抖动问题最根本的方 法是控制多道程序的数量,使每个用户作业都有足够的内存 空间。但如果作业的个数太少,就会影响处理器的利用率[3]。 为了提高 GIS 调度空间数据的效率,本文提出基于内存池的 空间数据调度算法。

    img

    No7.《Linux实时内存的研究与实现》

    部分摘要: Linux系统采用了虚拟存储技术,当请求的页面不在内存中时触发缺页中断,由此带来的延迟不确定,故 不能满足实时应用程序的要求.此外,对于用户态和内核态存在大量数据传输的情况下,通用 Linux系统也不能满 足实时应用程序的需求.针对以上问题,讨论了 Linux的内存管理,并采用内存映射技术来解决虚拟内存的换页问 题以及实现用户态和内核态共享一块物理内存来满足实时应用程序的需求.在 文 章 的 最 后,测试和比较了采用内 存映射技术实现实时内存的性能.测试结果表明,采用该技术可以有效地为实时应用程序提供实时内存。

    img

    No8.《Linux操作系统内核分析与研究》

    部分摘要: Linux 2. 4操作系统内核的四个基本功能:进程管理 与调度机制、存储管理机制、文件系统管理机制。

    1. 进程管理与调度机制描述数据结构进程控制块及 Linux 操作系统如何创建、 执行、调度管理和撤销系统中的进程。
    2. 存储管理机制描述物理内存管理器、内核缓冲区管理器、进程虚拟内存管理 器的工作原理。
    3. 文件管理机制描述 Linux 系统如何通过虚拟文件系统(VFS)支持多种不同的 物理文件系统,剖析了 Linux 文件系统中一个物理文件系统的注册与注销、 安装和卸载过程。

    通过分析Linux 2. 4操作系统内核,掌握了操作系统的设计思想和实现方法, 为以后进一步定制特定的嵌入式操作系统打下了坚实的基础;今后的工作应在操 作系统内核改进上进行定性分析和理论创新。

    img

    No9.《内存管理机制的高效实现研究》

    部分摘要: 为了高效地管理内存,防止内存泄漏、越界访问等问题的出现,在分析传统动态内存管理机制的基础上,提出了一 种基于 Windows 虚拟内存管理的高效动态内存管理机制。通过创建内存管理器来维护虚拟地址空间和处理内存申请和释放 请求,改进了传统动态内存分配与回收算法,并在 VC++6.0 开发平台上实现了该动态内存管理机制。测试结果分析表明,该 方法有效降低了申请与释放内存的时间耗费,减少了内存碎片的产生,提高了动态内存管理效率。

    img

    No10.《分页存储管理系统中内存有效访问时间的计算》

    部分摘要: 针对分页存储管理中的内存有效访问时 间的计算问题,对基本分页存储系统和请求分页存储系统分别进行了探讨,总结了多种情况下内 存有效访问时间的计算公式,并通过案例加以分析应用。通过分析,使学生对分页存储管理系统 的实现过程更加清晰。

    img

    No11.[《基于C++ 的高效内存池的设计与实现》](https://github.com/0voice/kernel_memory_management/blob/main/📁论文/基于C 的高效内存池的设计与实现.pdf)

    部分摘要: 为了高效、安全地利用计算机内存资源,在大型的软件设计中,往往要进行大量的内存分配与回收操 作,为此,C ++ 专门提供了 malloc 等相关函数进行操作,这些函数能够满足一般的使用,但由于它们调用了操 作系统 API,所以实际使用时会在操作系统中产生大量的内存碎片,让内存分配成为效率瓶颈,从而降低系统 性能. 基于此,通过对循环首次适应算法进行改进,设计并实现了基于 C ++ 的高效内存池,大幅提升了内存分 配与回收的效率. 同时,还为内存池编写了相关的分配子,使其能与 C ++ 标准库无缝对接,提供了若干具有垃 圾回收功能的智能指针,提高了内存管理与程序运行的效率。

    img

    No12.[《基于C++ 自定义内存分配器的实现》](https://github.com/0voice/kernel_memory_management/blob/main/📁论文/基于C 自定义内存分配器的实现.pdf)

    部分摘要: 一些需要长时间可靠运行的特殊系统,在进行频繁的内存分配和释放操作的过程中,容易产 生内存碎片,影响内存分配的速度,降低内存利用率,导致系统运行越来越慢。虽然,静态分配内存 的方案可以解决部分问题,但容易造成内存空间的浪费。一个简单的自定义内存分配器,实现了在提 高内存使用率的同时,还能减少内存碎片的产生。

    img

    No13.《基于Linux内核的动态内存管理机制的实现》

    部分摘要: 在软件开发过程中,共享内存经常会遇到一个进程消耗太多内存导致其他进程无法得到需要内存的潜在问题,针对该问题,基于 Linux 内核实现一种动态内存管理机制,该机制能够限制每个进程所能申请的最大内存数,同时可以避免进程内存泄露造成的系统崩溃。 实验结果表明,该机制效率高、且易用性好。

    img

    No14.《基于multimap映射的动态内存分配算法探究》

    部分摘要: 对多种不同的动态内存分配算法的特点与优劣进行对比、分析,在兼顾效率和内存碎片率指标的要求下,提出了基 于multimap映射的动态内存分配算法。该算法以内存块的大小作为键,内存块的地址信息作为值,以键值对的形式存储 内存块的地址,并在内存块实体的首部与尾部添加标识信息。为检验算法效果,设计了多组数据对新算法和现有经典内 存管理算法效率进行比较,实验结果表明新算法在降低时间开销,保留较大连续空间,减少内存碎片等方面具有较明显的改善。

    img

    No15.《对linux伙伴系统及其反碎片机制的研究》

    部分摘要: 首先介绍了linux伙伴系统的原理,然后提出了旧版本内核在解决碎片问题上的不足,并详细分析了内核对于该问题的 最新解决方法。

    img

    No16.[《有效的C++内存泄露检测方法》](https://github.com/0voice/kernel_memory_management/blob/main/📁论文/有效的C 内存泄露检测方法.pdf)

    部分摘要: 提出了一个有效的 C++内存泄漏检测方法。方法在分析内存泄漏的基础上, 通过重新实现动态内存分配和释放函数, 记录内 存分配的确切位置并跟踪动态内存的使用情况。在程序结束时, 方法利用跟踪结果检测和定位内存泄漏。最后, 通过在 Windows 和 Linux 平台上的实验验证了本文方法的有效性。

    img

    No17.《浅析伙伴系统的分配与回收》

    部分摘要: 分配效率、碎片问题是操作系统中内存分配的两大问题。一个好的分配器应该 能够快速地满足各种大小的分配要求,同时不能产生大量的碎片浪费空间。基于数据 结构中的伙伴系统的分配与回收思想给出了一个有效的算法。

    img

    No18.《用户态内存管理关键技术研究》

    部分摘要: 在软件开发中 , 动态内 存管理是一 项很重要 的 内容 。 相 比不需要 开发人员干预的 静 态 内存管理方 式, 动态 内 存需要开发人员 自 己管理内 存 的 申请、 释放等操作 。 虽然动 态 内 存管理机制 非常强大, 但是 同时 由 于动态 内 存管 理复杂性, 由此也带来了 很多 问 题。 在这些问 题中 , 内 存碎片和 内 存泄漏成为其中最显著 的两个问 题 。 内 存碎片是 由 于频繁 的 申请和释放, 导致一 些小 的 内存块无法被程序使用 , 同 时也无法被系统回 收导致 。 内 存碎片积累首先会浪费 系统内 存, 同 时它也增加 了 动态内 存管理的 负 担 , 增 加程序 申 请 内 存块的 时 间 。 内 存 泄漏是指在 开发人员 申 请使用 了 内 存块之后 , 由 于各种 原因 没有释 放 内 存块, 同时操作系统也无法回收该 内 存块 , 造成程序使用 内 存持续增加 , 最终耗尽 系统内 存。

    img

    No19.《虚拟化系统中的内存管理优化》

    部分摘要: 在 服 务器虚拟化中 , 多个虚拟机共 享 同 一 机器 的 物理 内 存 。 由 于 内 存 的读 写 速度通 常要 比磁盘等 外存设 备 高 出 1 ? 2 个 数量级 , 因 此将虚拟机的 数据 尽量放 入 内 存 可 以提升系 统 性 能 。 然 而 研 宄表 明 , 服务器 有 限 的 内 存容 量 正在 成 为 限 制 虚 拟机部署 密 度 和 系 统性 能提升 的 瓶颈 。 内 存 重 删 和 动态 内 存 调 节 是提 高虚 拟化系 统 内 存 利 用 率 的两个 重要 技术 。 内 存 重删 通过 消 除 重 复数 据 减少 虚拟机 的 内 存 占 用量 。 动 态 内 存调 节通过 回收虚拟 机空 闲 内 存 提高宿 主 机内 存 利用 率 。 本 文 分析 了 现有方法 的不 足 , 提 出 了 相 应的优化 方案 。

    img

    No20.《页面分配器的研究与实现》

    部分摘要: 大部分现代操作系统实现了基于分页的虚拟存储器系统。物理内存被划分成大小相同 的页帧‚页面分配器管理所有的页帧‚负责分配和释放物理页面。页面级操作是内核代码 的关键路径‚页面分配器的评价标准首先是必须快‚其次是外部碎片和内部碎片必须少。

    img

    本文涉及的资料全部打包放到我Github仓:

    GitHub:【内存管理】的资料,包含100论文,100文章,20视频,以及应用程序的内存泄露,内存池相关

    有需要的可以前去下载,或者觉得还不错,请给我Star,感谢支持!

    开源分享

  • Linux内核里面【内存管理】部分,内容相当的多,我给大家整理一些
    wenchao1024W wenchao1024

    内容包含:

    • 论文
    • 文章
    • 视频
    • 面试题
    • 内存泄露
    • 内存池相关

    希望大家多多支持!

    项目地址:https://github.com/0voice/kernel_memory_management

    技术交流

  • 为什么Rust是未来?
    wenchao1024W wenchao1024

    【最安全的编程语言】Rust工程师枕边资料,大牛文章,开源框架,官方文档,视频,推荐书籍,学习干货,大牛语录

    综合交流

  • 一个c/c++学习的库,包含经典项目,视频,书籍,面试题/算法题,技术文章
    wenchao1024W wenchao1024

    只是求个Star,别的不求!

    0c8a21ec-e6ea-462e-b5ec-a34dcaf12b9d-image.png

    项目地址:https://github.com/0voice/introduce_c-cpp_manual

    开源分享

  • 70份程序员技术点【思维导图】
    wenchao1024W wenchao1024

    🍱 “干饭人” --- 2021年【思维导图】盒子,C/C++,Golang,Linux,云原生,数据库,DPDK,音视频开发,TCP/IP,数据结构,计算机原理等等

    ps:我什么都不要,只求Star,行吗?

    img

    —— 优秀的果实,从导图开始

    img

    —— 【腾讯T9技术栈】登顶 IT 顶峰,不是梦!

    🔍 【查漏补缺】晋升 Linux C/C++后端服务器架构开发 岗位,你还需要掌握哪些?

    🍘 计算机

    img

    • 计算机概论

    • 计算机系统基础

    • 计算机组成与系统结构

    • 计算机组成原理

    • 计算机网络

    • 计算机网络 第一章

    • 计算机网络 第二章

    • 计算机网络 第三章

    • 计算机网络 第四章

    • 计算机网络 第五章

    • 网络编程(Socket)

    • 数据链路层

    • 物理层

    • 传输层

    • TCP/IP

    • IPC

    🍚 C/C++ 服务器高级架构

    img

    • C++从入门到精通

    • C++面向对象

    • 数据结构与算法内容梳理

    • 数据结构概述

    • 调度与死锁

    • 面向对象编程

    • 线程

    • 线程同步

    • 分布式事务

    • 分布式协议与算法

    • 分布式锁实现方式

    • socket编程

    • 传输层协议之TCP

    • 多路IO复用

    🍛 Golang

    img

    • Golang基础

    • 用Golang开发后台掌握哪些知识点

    🍥 数据库

    img

    • SQL基础

    • SQL数据库基础知识(SQL Server)

    • 数据库系统

    • MySQL知识点归纳

    • MySQL索引

    • Mysql性能调优思路

    • MySQL全面优化思路

    • Innodb的整体架构图

    • Redis基础

    • Redis知识点归纳

    • Redis数据类型归纳

    • Redis知识点

    • Redis高性能分布式缓存

    🍣 中间件

    img

    • Nginx知识点

    • Nginx实战操作

    • 高吞吐消息中间件 Kafka

    • Zookeeper知识点归纳

    🍜 DPDK

    img

    • DPDK架构图

    • Dpdk-网络协议栈-vpp-OvS-DDos-虚拟化专家之路

    🍝 Linux

    img

    • Linux

    • Linux内核知识体系

    • Linux基本命令集

    • Linux学习

    • 操作系统

    • Linux入门

    • Linux内核源码分析

    • linux编程入门项目

    • Linux常用操作

    🥡 音视频开发

    img

    • 音视频流媒体开发知识归纳导图

    🥮 云原生

    img

    • Docker知识点归纳

    • Docker命令

    • Kubernetes知识点

    • Kubernetes知识点归纳

    • Kubernetes核心组件运行机制

    • 深入分析集群安全机制

    • 深入理解Pod

    • 深入理解Service

    • Kubetcl命令

    开源分享

  • 大佬们,Linux开发环境都准备好了,拿走不谢
    wenchao1024W wenchao1024

    开发者们,你们好。今天给大家推荐Linux开发环境。

    这是我最近在Github上整的一份Linux开发环境的一个Repo。

    主要内容包含:

    • 目前主流虚拟机
    • Linux发行版推荐
    • 优秀的国产OS
    • SSH客户端推荐
    • 编辑器
    • 编译器
    • 测试工具
    • Linux源码

    目前主流虚拟机

    这里我列举了13款主流虚拟机。分别介绍了它们的特点,优势,我们可以根据自己的需要选择自己项目合适的虚拟机。

    img

    img

    Linux发行版推荐

    这里我将这些发行版的安装包,放到网盘中。大家有需要的可以下载。(考虑到有的OS需要科学上网)

    img

    优秀的国产OS

    另外还列举了我们国内优秀的Linux系统。

    img

    SSH客户端推荐

    SSH客户端这个东西大家应该不陌生吧!我想大家只要有维护Linux系统,都有用过此类型的产品。这里我给大家罗列了一些,并对每一款ssh客户端作了简单的介绍。

    img

    img

    编辑器

    编辑器就更不陌生了,这是每个工程师的生成工具。但是每个工程师会对某一个编辑器“情有独钟”,那么你“钟情”的编辑器是哪一款呢?

    img

    img

    编译器

    我们代码往往编写都是特定英文编程语法,那从我们的编写语言变成机器识别的“0101”的过程,就需要的编译器来完成了。

    它主要的目的是将便于人编写、阅读、维护的高级计算机语言所写作的源代码程序,翻译为计算机能解读、运行的低阶机器语言的程序,也就是可执行文件。编译器将原始程序(source program)作为输入,翻译产生使用目标语言(target language)的等价程序。源代码一般为高级语言(High-level language),如Pascal、C、C++、C# 、Java等,而目标语言则是汇编语言或目标机器的目标代码(Object code),有时也称作机器代码。

    img

    测试工具

    压力测试

    • ApacheBench
    • IOmeter
    • webbench
    • siege
    • nbench
    • stress
    • prime
    • Memtester

    性能测试

    • WebLOAD
    • LoadUI NG Pro
    • SmartMeter.io
    • Tricentis Flood
    • LoadView
    • Apache JMeter
    • LoadRunner
    • Rational performance tester
    • NeoLoad
    • LoadNinja
    • WAPT
    • Loadster
    • LoadImpact
    • Testing Anywhere
    • QEngine (ManageEngine)
    • OpenSTA
    • Sysbench

    性能监控工具

    • dstat - 多类型资源统计工具
    • top - 相比top更好的ASCII码体验
    • Nmon - 类Unix系统的性能监控
    • slabtop - 显示内核slab缓存信息
    • sar - 性能监控和瓶颈检查
    • Saidar - 简单的统计监控工具
    • top - 经典的Linux任务管理工具
    • Sysdig - 系统进程的高级视图
    • netstat - 显示开放的端口和连接
    • tcpdump - 洞察网络封包
    • vmstat - 虚拟内存统计信息
    • free - 内存统计信息
    • Htop - 更加友好的top
    • ss - 网络管理的现代替代品
    • lsof - 列表显示打开的文件
    • iftop - 类似top的了网络连接工具
    • iperf - 网络性能工具
    • Smem - 高级内存报表工具
    • Icinga - Nagios的社区分支版本
    • Nagios - 最为流行的监控工具
    • Linux process explorer - Linux下的procexp
    • Collectl - 性能监控工具
    • MRTG - 经典网络流量监控图形工具
    • Monit - 简单易用的监控工具
    • Munin - 为服务器提供监控和提醒服务

    Linux源码

    img

    开源分享

  • 硬核总结linux环境开发工具,包含linux,虚拟机,编译器,编辑器,测试工具,加密工具
    wenchao1024W wenchao1024

    50f14149-a5ad-4ebd-b2ad-62096677d1a7-image.png
    4fb7d976-f7a0-4145-9700-e1a83363f2bc-image.png
    6617781c-5ed6-4d49-a43b-3a38e0b23e54-image.png
    66a9bbfa-5895-4a3c-bb6d-3714fcf0852b-image.png

    求支持地址:https://github.com/0voice/linux_environment_tools

    开源分享

  • 【求支持】整理k8s(Kubernetes)的工程师资料
    wenchao1024W wenchao1024

    🤝跟大厂一起认识K8s

    • Kubernetes 的概述---官方
    • Kubernetes是什么?---红帽redhat
    • Kubernetes是什么?---mirantis
    • 深入研究 Kubernetes 核心概念---阿里巴巴
    • Kubernetes 开源知识---华为
    • 深入浅出Kubernetes实战手册(阿里云)

    🚩核心组件

    • etcd cluster –存储Kubernetes集群数据的分布式密钥值存储
    • kube-apiserver – 接收所有修改集群元素的REST请求的中央管理实体
    • kube-controller-manager – 运行控制器进程,如复制控制器(设置pod中的副本数量)和端点控制器(填充服务、pod和其他对象)
    • cloud-controller-manager – 负责管理依赖于底层云提供商的控制器流程
    • kube-scheduler– 帮助根据资源利用率调度集群节点上的pod(应用程序进程在其中运行的一组共存的容器)

    .......

    更多内容:https://github.com/0voice/k8s_awesome_document

    开源分享

  • 音视频流媒体开发学习资料整理
    wenchao1024W wenchao1024

    内容包含:

    • 精选文章
    • 学术论文
    • 大佬视频
    • 实践项目
    • 开源框架
    • 协议
    • 业界大神一览

    访问地址:https://github.com/0voice/audio_video_streaming

    img

    感谢大家支持!

    开源分享

  • 偷瞄大佬书签栏,16个C++必备学习网站,建议收藏
    wenchao1024W wenchao1024

    一、 一系列类和函数的集合,使用核心语言编写,也是C++ISO自身标准的一部分

    img

    http://en.wikipedia.org/wiki/C%2B%2B_Standard_Library

    二、 标准模板库

    img

    https://en.wikipedia.org/wiki/Standard_Template_Library

    三、POSIX系统的C标准库规范

    img

    https://en.wikipedia.org/wiki/C_POSIX_library

    四、C++标准委员会

    img

    https://github.com/cplusplus

    五、 C++ 常见问题

    img

    https://isocpp.org/faq

    六、 Free Country 提供了免费的 C++ 源代码和 C++ 库,这些源代码和库涵盖了压缩、存档、游戏编程、标准模板库和 GUI 编程等 C++ 编程领域。

    img

    www.thefreecountry.com

    七、 C 和 C++ 的用户团体提供了免费的涵盖各种编程领域 C++ 项目的源代码,包括 AI、动画、编译器、数据库、调试、加密、游戏、图形、GUI、语言工具、系统编程等

    img

    www.hal9k.com

    八、 免费学习c++编程

    img

    www.learncpp.com

    九、 CodeCogs是一项协作的开放源码库,C/C++的数值方面的组件

    img

    www.codecogs.com

    十、 codeproject提供的C/C++资源代码项目

    img

    www.codeproject.com

    十一、 游戏有关的C++源代码

    img

    www.thoughtco.com

    十二、 免费C++源代码和其它有用的工具

    img

    https://www.programmerworld.net/resources/c_library.htm

    十三、 这是一个收集了数C/C++网站链接列表的网页

    img

    http://www.josuttis.com/libbook/examples.html

    十四、- C++学习网站

    img

    http://www.cplusplus.com/

    十五、这是一个全面的关于C++的345个源代码清单

    img

    https://people.sc.fsu.edu/~jburkardt/cpp_src/cpp_src.html

    十六、网友整理:C++ 学习资料,含C++ 11 / 14 / 17 / 20 / 23 新特性、入门教程、推荐书籍、优质文章、学习笔记、教学视频等

    img

    https://github.com/0voice/cpp_new_features

    开源分享

  • c++学习资源,整理了好久,终于整了一些出来了,现在分享给大家
    wenchao1024W wenchao1024

    内容包含:

    • C++ 11 / 14 / 17 / 20 / 23 新特性
    • 入门教程
    • 推荐书籍
    • 优质文章
    • 学习笔记
    • 教学视频等

    学习地址:https://github.com/0voice/cpp_new_features

    img

    开源分享

  • 项目自荐【Rust工程师枕边资料】
    wenchao1024W wenchao1024

    各位开发者们,又开始新的资料整理工作。这次整理的是Rust语言相关内容。
    希望大家,多多支持!
    传送门:https://github.com/0voice/Understanding_in_Rust

    开源分享

  • 自荐:【冲破内核瓶颈,让I/O性能飙升】DPDK工程师手册
    wenchao1024W wenchao1024

    @wenchao1024 感谢大家的支持!

    开源分享

  • 自荐:【冲破内核瓶颈,让I/O性能飙升】DPDK工程师手册
    wenchao1024W wenchao1024

    ✨✨✨【DPDK工程师手册】 —— 官方文档,最新视频,开源项目,论文,大厂内部ppt,知名工程师一览表

    <div align=center>

    image

    —— 冲破内核瓶颈,让I/O性能飙升。

    书籍电子版资料 官方文档 最新视频 大会ppt 开源项目 论文 知名工程师
    📕 📜 📀 🎞 🏗 📰 👷

    </div>

    <dr>

    <div align=center>

    image

    </div>

    📣 【梳理思维,一图定乾坤】DPDK架构图.pdf

    🔥 【800页编程指南,含中文】DPDK编程指南.pdf

    🔈 【今日推荐阅读】打破DPDK的误区: 数据面最流行的工具包DPDK的前世,现在和未来

    💪 国人技术,弘扬大厂实力

    中兴通讯高性能5G核心网UPF实现

    中国电信DPDK技术白皮书v1.0

    爱奇艺DPDK网络优化实践

    基于DPDK实现的LB支撑阿里巴巴双11业务

    📕 书籍电子版资料

    《DPDK应用基础》

    《深入浅出DPDK》

    《Linux开源网络全栈详解:从DPDK到OpenFlow》

    《DPDK Programmer’s Guide》

    《Data Plane Development Kit (DPDK)》

    📜 官方文档

    《DPDK Testpmd 应用》.pdf

    《DPDK for FreeBSD入门》.pdf

    《DPDK for Linux入门》.pdf

    《DPDK 中的 NIC 驱动程序》.pdf

    《DPDK 示例应用》.pdf

    《Fastpass:集中的“零队列”数据中心网络(英文)》.pdf

    《发布说明:数据平面开发套件》.pdf

    《含 XEN 的 DPDK》.pdf

    《在英特尔® 处理器上启用卓越的 Galois-Counter 模式》.pdf

    《多 Gbps 的流管理:经验教训(英文)》.pdf

    《程序员指南:数据平面开发套件》.pdf

    《采用 CUCKOOSWITCH 的可扩展、高性能以太网转发(英文)》.pdf

    📀 最新视频

    <br>

    2021年DPDK北美峰会 演讲者
    Welcome_ DPDK Summit NA 2021Virtual Experience Arpit Joshipura
    DPDK on RISC-V Stanislaw Kardach, Semihalf
    Getting Past Incubation_ DPDK for Windows Platform Goes Mainstream
    Using Virtual Functions with DPDK in OpenShift 4 Ip Sam & Wuxin Zeng, Red Hat
    High Density Scalable Cloud Gateway for Cloud Networking Hongjun Ni & Pan Zhang, Intel
    Running P4 programs as DPDK applications Cristian Dumitrescu & Han Wang - Intel
    Advanced API For Rules Management - RTE Flow Next Evolution Ori Kam, NVIDIA
    Tools for Memory Model Simulation Herd7 - Honnappa Nagarahalli, ARM
    Transitioning Flow Based ethdev Ops to rte_flow Ajit Khaparde, Broadcom
    Closing Remarks - DPDK Summit NA 2021 Arpit Joshipura

    <br>

    2021年亚太DPDK峰会 演讲者
    Welcome- DPDK Summit APAC 2021 Jim St. Leger
    Dynamic Mempool_ One of the Final Steps to Make DPDK Cloud-Native Jielong Zhou
    An Ideal Network IO Virtualization Solution in DPDK Xiuchun Lu, Chenbo Xia
    Handling Elephant Flow on a DPDK-Based Load Balancer Hongjun Ni, Yipeng Wang, Chenmin Sun
    OvS Tunneling and Connection Tracking Hardware Offload via Rte_flow Xiao Wang, Rosen Xu
    Accelerating vHost Data Plane with DMA in the CPU Jiayu Hu
    Warp Speed Cryptographic Applications Fan Zhang
    Introducing Hardware Content Inspection Accelerator Into the ... Kun Qiu, Harry Chang
    Enhance SEBA-Based FTTH vCPE System with SPP vSwitch Tri Trinh, Kentaro Ogawa
    Memory Error Detect Enhancement for DPDK Fuzzing Xueqin Lin, Yinan Wang
    Using DPDK to Build PCIe Endpoint Framework Jun Yang, Hongjun Chen

    <br>

    2017年DPDK中国上海技术峰会 演讲者
    A Better Virtio towords NFV Cloud Cunming Liang
    Accelerate VM I_O via SPDK and Crypto for Generaic vHost Changpeng Liu,Xin Zeng
    Accelerate VM I_O via SPDK and Crypto for Generaic vHost_2 Changpeng Liu,Xin Zeng
    OVS-DPDK Practices in Meituan Cloud Huai Huang
    A High speed DPDK PMD approach in LXC Jie Zheng
    Cloud Data Center, Network Security practices Kai Wang
    DPDK in container - Status Quo and Future Directions Jianfeng Tan
    F-Stack, a full user space network service on DPDK Hailang Wang
    Support Millions users in vBRAS Zhouhui Sun
    Telco data plane status, challenges and solutions Hao Lin
    Towards Low Latency Interrupt Mode PMD Yunhong Jiang,Wei Wang
    Accelerate VPP workload with DPDK Cryptodev Framework Fan Zhang
    Data Center Security Use Case with DPDK Haohao Zhang
    Intel® 25GbE Ethernet Adapter Advanced Features for NFV, Adaptiv Helin Zhang,Jingjing Wu
    Intel® 25GbE Ethernet Adapter Advanced Features for NFV, Adaptiv_2 Helin Zhang,Jingjing Wu
    Network performance tuning, lesson learned Fangliang Lou
    OPDL- On The Path To Packet Processing Nirvana Liang Ma

    🎞 大会ppt

    APAC 2021-Accelerating vHost with DMA-JiayuHu.pdf

    APAC 2021-DPDK APAC Summit - Opening Remarks.pdf

    APAC 2021-DPDK_Summit21_wdate_PPT_OvS-Tunnel_CT.pdf

    APAC 2021-Handling Elephant Flow on a DPDK-Based Load Balancer.pdf

    APAC 2021-Hardware Accelerator into the Network Security Applications.pdf

    APAC 2021-Ideal_Virt_Framework.pdf

    APAC 2021-Memory error detect enhancement for DPDK fuzzing_APAC_final-1.pdf

    APAC 2021-SEBA_SPP_NTT_VNPT_DPDK_SUMMIT_APAC_2021_Official_v0.1.pdf

    APAC 2021-Using DPDK to build PCIe endpoint framework.pdf

    APAC 2021-dynamic mempool.pdf

    APAC 2021-warp speed crypto - A new DPDK Cryptodev Raw Data Path API and its use in Fd.io VPP.pdf

    NA 2021-Cristian_Dumitrescu_Han_Wang_Running_P4_Programs_as_DPDK_Apps.pdf

    NA 2021-DPDK NA - Closing Remarks.pptx.pdf

    NA 2021-DPDK Summit North America 2021.pdf

    NA 2021-DPDK on RISC-V - Stanislaw Kardach, Semihalf.pdf

    NA 2021-High Density Scalable Cloud Gateway for Cloud Networking_DPDK Summit NA 2021_Ni Hongjun & Zhang Pan.pdf

    NA 2021-Memory Model Simulation Tool - Herd7.pdf

    NA 2021-RTE_Flow improvements Ori Kam.pdf

    NA 2021-Transitioning Flow Based ethdev Ops to rte_flow - Ajit Khaparde.pdf

    NA 2021-Using Virtual Functions with DPDK in OpenShift 4.pdf

    NA 2021-dpdk-na-summit-2021_dpdk-on-riscv_kardach.pdf

    NA 2021-zero-copy-ring-APIs-DPDK.pdf

    DPDK-China2017-Huang-OVS-DPDK-Practices-in-Meituan-Cloud.pdf

    DPDK-China2017-JiangWang-Low-Latency-PMD.pdf

    DPDK-China2017-LiangWang-A-Better-Virtio-towards-NFV-Cloud.pdf

    DPDK-China2017-Lin-Telco-Data-Plane-Status.pdf

    DPDK-China2017-LiuZeng-Accelerate-VM-IO-via-SPDK.pdf

    DPDK-China2017-Lou-Network-Performance-Tuning.pdf

    DPDK-China2017-Ma-OPDL.pdf

    DPDK-China2017-Sun-Support-Millions-vBRAS.pdf

    DPDK-China2017-Tan-DPDK-in-Container.pdf

    DPDK-China2017-Wang-Cloud-Data-Center-Security Technologies.pdf

    DPDK-China2017-Wang-Cloud-Data-Center.pdf

    DPDK-China2017-Wang-FStack.pdf

    DPDK-China2017-Zhang-Accelerate-VPP.pdf

    DPDK-China2017-Zhang-Data-Center-Security-Use-Case-with-DPDK.pdf

    DPDK-China2017-ZhangWu-Intel-25GbE-Ethernet.pdf

    DPDK-China2017-Zheng-High-Speed-DPDK-PMD-LXC.pdf

    🏗 开源项目

    <br>

    项目 简介
    dpdk-burst-replay 注入pcap文件
    DTS DPDK测试套件
    intel-go/nff-go NFF-Go - GO的网络功能框架(原YANFF)
    Pktgen 由 DPDK 提供支持的流量生成器
    SPP DPDK 资源管理框架
    ansyun/dpdk-ans ANS(加速网络堆栈)是DPDK本地TCP/IP堆栈,也参考FreeBSD实现。ANS提供了一个与Intel DPDK一起使用的用户空间TCP/IP堆栈。
    dpdkcap/dpdkcap 基于dpdk的抓包工具
    pktgen/Pktgen-DPDK 基于DPDK的包生成器
    iqiyi/dpvs DPVS是一种基于DPDK的高性能四层负载均衡器
    iqiyi/qnsm QNSM是基于DPDK的网络安全监控框架
    rumpkernel/drv-netif-dpdk 用户空间TCP/IP栈的DPDK接口驱动程序
    emmericp/MoonGen MoonGen是一个完全可编写脚本的高速包生成器,构建在DPDK和LuaJIT之上。当为每个包执行用户提供的Lua脚本时,它可以在单个CPU核心上使用64字节的包来饱和10gb /s的连接。多核支持允许更高的速率。它还具有精确和准确的时间戳和速率控制。
    libmoon/libmoon libmoon是一个使用DPDK和LuaJIT进行快速灵活的包处理的库。
    usnistgov/ndn-dpdk NDN-DPDK:高速命名数据网络转发器
    vipinpv85/DPDK_SURICATA-4_1_1 用于软件加速的DPDK基础设施。目前正在进行RX和ACL预过滤
    wangbojing/NtyTcp 单线程用户态TCP/IP协议栈,epoll实现,包含服务器案例,并发测试案例
    tiglabs/jupiter Jupiter是一种基于DPDK的高性能四层网络负载均衡服务。
    F-Stack/f-stack F-Stack是一个基于DPDK、FreeBSD TCP/IP栈和协程API的高性能用户空间网络开发工具包。
    bytedance/ovs-dpdk 这是Open vSwitch的一个分支,我们专注于基于DPDK的Open vSwitch
    napatech/daq_dpdk_multiqueue Snort DPDK DAQ模块,支持多队列-主要用于Napatech网卡

    📰 论文

    No. Title Translation(参考) Company
    1 《Performance optimization of Snort based on DPDK and Hyperscan》 基于DPDK和hypercan的Snort性能优化 中国科学院
    2 《Metronome: adaptive and precise intermittent packet retrieval in DPDK》 DPDK中自适应、精确的间歇数据包检索 罗马托尔维加塔大学
    3 《NDN-DPDK: NDN Forwarding at 100 Gbps on Commodity Hardware》 在商品硬件上以100 Gbps的NDN 转发 未知
    4 《Accretion of Suricta with DPDK for Traffic Monitoring using Optimized Detection System IDS/IPS》 基于优化检测系统IDS/IPS的Suricta与DPDK的增加 拉迈雅理工学院
    5 《Leveraging Programmable Dataplanes for a High Performance 5G User Plane Function》 利用可编程数据平面实现高性能5G用户平面功能 印度理工学院
    6 《StackMap Low-Latency Networking with the OS Stack and Dedicated NICs》 StackMap:低时延使用OS Stack和专用网卡组网 庆应义塾大学
    7 《Implementing and Comparing Static and Machine-Learning Scheduling Approaches using DPDK on an Integrated CPU/GPU》 在集成CPU/GPU上使用DPDK实现和比较静态和机器学习调度方法 林雪平大学
    8 《Assessing Soft- and Hardware Bottlenecks in PC-based Packet Forwarding Systems》 评估基于pc的报文转发系统的软硬件瓶颈 慕尼黑工业大学
    9 《The Path to DPDK Speeds for AF XDP》 The Path to DPDK AF XDP的速度 Intel
    10 《Network Function Virtualization Using Data Plane Developer’s Kit》 使用数据平面开发工具的网络功能虚拟化 美满电子科技
    11 《SoftNIC: A Software NIC to Augment Hardware》 扩充硬件的软件网卡 加州大学伯克利分校
    12 《Network Functions Virtualisation》 网络虚拟化功能 AT&T
    13 《NetVM: High Performance and Flexible Networking using Virtualization on Commodity Platforms》 在商品平台上使用虚拟化的高性能和灵活的网络 乔治华盛顿大学
    14 《Stateless Network Functions: Breaking the Tight Coupling of State and Processing》 无状态网络功能:打破状态和处理的紧密耦合 IBM
    15 《Performance Contracts for Software Network Functions》 软件网络功能执行合同 瑞士洛桑联邦理工学院
    16 《Re-architecting Congestion Management in Lossless Ethernet》 无损以太网拥塞管理的重新架构 北京国家信息科学与技术研究中心
    17 《BMC: Accelerating Memcached using Safe In-kernel Caching and Pre-stack Processing》 使用安全内核缓存和栈前处理加速Memcached 索邦大学
    18 《RedLeaf: Isolation and Communication in a Safe Operating System》 安全操作系统中的隔离和通信 加利福尼亚大学尔湾分校
    19 《A Simpler and Faster NIC Driver Model for Network Functions》 一种更简单、更快的网络功能网卡驱动模型 瑞士洛桑联邦理工学院
    20 《Towards including batch services in models for DPDK-based virtual switches》 在基于dpdk的虚拟交换机的模型中包含批处理服务 HAL
    21 《Latency optimization and analysis through the use of a high-speed packet IO framework for high-bandwidth data processing》 延迟优化和分析,通过使用高速分组IO框架进行高带宽数据处理 德根多夫理工学院
    22 《A new model for DPDK-based virtual switches》 一种基于dpdk的虚拟交换机模型 HAL
    23 《FlowMon-DPDK: Parsimonious per-flow software monitoring at line rate》 FlowMon-DPDK:基于线路速率的简单的每流量软件监控 诺基亚贝尔实验室
    24 《Intel® DPDK Boosts Server Appliance Performance》 英特尔®DPDK提升服务器设备性能 Intel
    25 《Virtual Switch Acceleration with OVS-TC and Agilio 40GbE SmartNICs》 基于OVS-TC和Agilio 40GbE SmartNICs的虚拟交换机加速 Netronome

    👷 知名工程师

    • Jim St. Leger —— 英特尔开源战略和营销总监

    • Edwin Verplanke —— 英特尔解决方案架构师

    • Harini Ramakrishnan —— Microsoft 的项目经理

    • Georgii Tkachuk —— 英特尔性能工程师

    • Honnappa Nagarahalli —— Arm 首席软件工程师

    • Yasufumi Ogawa —— NTT 服务系统实验室的研究工程师

    • Jingjing Wu —— 英特尔软件工程师

    • Jill Lovato —— Linux 基金会通信高级经理

    • Trishan de Lanerolle —— Linux 基金会技术项目经理

    • Jielong Zhou —— 蚂蚁集团

    • Yong Wang —— 中兴通讯硬件工程师

    • Xiuchun Lu —— 英特尔网络平台事业部工程师

    • Chenbo Xia —— 英特尔网络平台事业部工程师

    • Hongjun Ni —— 英特尔高级软件工程师

    • Yipeng Wang —— 英特尔高级软件工程师

    • Chenmin Sun —— 英特尔高级软件工程师

    • Jianfeng Tan —— 英特尔软件工程师

    • Hailong Wang —— 腾讯高级工程师

    • Cunming Liang —— 英特尔平台方案架构师

    • Changpeng Liu —— 英特尔资深工程师

    • Xin Zeng —— 英特尔资深工程师

    • Huai Huang —— 美团技术专家

    • Fangliang Lou —— 中兴通讯架构师

    • Liang Ma —— 英特尔资深工程师

    • Helin Zhang —— 英特尔技术经理

    • Jingjing Wu —— 英特尔资深工程师

    • Fan Zhang —— Intel 资深工程师,博士

    • Haohao Zhang —— 腾讯安全平台部高级工程师

    • Wei Wang —— Intel软件工程师

    • Hao Lin —— 太一星晨架构师

    • Zhaohui Sun —— 北京派网软件有限公司首席执行官

    • Jie Zheng —— United Stack网络虚拟化工程师

    • Kai Wang —— Yunshan资深工程师

    开源分享

  • 【自荐项目】DPDK工程师手册
    wenchao1024W wenchao1024

    DPDK工程师手册,官方文档,最新视频,开源项目,实战案例,论文,大厂内部ppt,知名工程师一览表
    感谢大家支持!!!!

    开源分享
  • 登录

  • 第一个帖子
    最后一个帖子
0
  • 社区首页
  • 版块
  • 最新
  • 标签
  • 热门