FFmpeg

1 FFmpeg从入门到精通-FFmpeg简介 1.FFmpeg简介 1.1 FFmpeg的定义 1.2 FFmpeg的历史 1.3 FFmpeg的基本组成 1.4 FFmpeg的编解码工具ffmpeg 1.5 FFmpeg的播放器ffplay 1.6 FFmpeg的多媒体分析器ffprobe 1.7 FFmpeg编译(1)FFmpeg之Windows平台编译(2)FFmpeg之Linux平台编译(3)FFmpeg之OS X平台编译 1.8 FFmpeg编码支持与定制(1)FFmpeg的编码器支持(2)FFmpe 阅读详情

FFmpeg是用于录制、转换和流化音频和视频的完整解决方案,一套领先的音/视频编解码类库。官方正式版ffmpeg不支持rmvb和rm格式. 不过有很多解决方法

FFmpeg的官方网址是 http://ffmpeg.mplayerhq.hu/ 。

中文Wiki是 http://www.ffmpeg.com.cn/ ,资料很多。

 

ffmpeg视频播放过程

http://wenku.baidu.com/view/6cafb37602768e9951e738ad.html

FFMpeg SDK 开发手册

http://wenku.baidu.com/view/a4710a12a21614791711284a.html?from=rec&pos=1&weight=469&lastweight=222&count=5

ffmpeg编写一个简单的播放器

http://wenku.baidu.com/view/8851cac7aa00b52acfc7ca9a.html?from=rec&pos=2&weight=4&lastweight=3&count=5

【FFmpeg学习】Visual Studio 2019 使用 ffmpeg 详细方法 目录 1. 下载FFmpeg编译好的Windows版本 2.VS2019配置ffmpeg 3. Windows控制台使用ffmpeg命令 1. 下载FFmpeg编译好的Windows版本 地址如下: Download FFmpeg 点击如下: 选择 shared 2.VS2019配置ffmpeg 比如:你下载上述的编译好的 ffmpeg 版本路径为: C:\ffmpeg\ffmpeg-4.4.1-full_build-shared 1)右键项... 阅读详情

相关推荐

对FFMPEG的小总结(自己看的)

这篇文章是我自己看的,你未必能看懂,当做我自己的备份。 FFmpeg是复杂的开源系统,刚开始玩只知道用命令ffmpeg -i test.mp4 这样的。其实普通用户能有用这个命令ffmpeg和FFmpeg框架是有区别的。 其实ffmpeg这个命令是一个程序,代码是FFmpeg的根目录ffmpeg.c编译出来的。这个ffmpeg.c调用了FFmpeg框架libavformat,libav

了悟生死大事 2654

FFmpeg初探——基于FFmpeg的图片合成视频

前言商家在发布商品的时候,大部分情况下是没有视频的,这样往往会造成商品展示不全等问题,而视频制作又比较麻烦,为了解决此痛点,我们需要提供一键合成视频的功能。之所以选择 FFmpeg,是因为...

大转转FE 9875

FFmpeg三大工具--ffmpeg

FFmpeg的Static版本的bin文件夹中只有三个.exe文件,分别是:ffmpeg.exeffplay.exe,这三个是FFmpeg源代码编译后生成的可执行文件,也就是FFmpeg的三大工具,本文章主要介绍ffmpeg。ffmpeg工具主要用于编解码,ffmpeg读取输入源进行音视频的解封装解码每一帧音视频数据编码每一帧音视频数据进行音视频的重写封装输出到目标。

yinshipin007的博客 976

FFMPEG

参考 FFmpeg 命令行利用ffmpeg实现rtmp推流《转》 - 阿波伦 - 博客园电脑摄像头推流 FFmpeg常用推流命令_ZH952016281的博客-优快云博客_ffmpeg推流命令 Windows环境下FFmpeg推流命令集合_yunduan512的专栏-优快云博客_ffmpeg推流命令 ffmpeg常用参数一览 - rlandj - 博客园 利用ffmpeg实现rtmp推流 - 简书 什么是FFmpeg? 这个名字的灵感来自 MPEG,意思是运动图像专...

fang.lovest.yang的博客 4303

FFmpeg 开发(01):FFmpeg 编译和集成

尽管 FFmpeg 功能强大,但是由于其采用的是带有传染性的 LGPL/GPL 开源协议,所以一些大厂基本上都是自己独立开发类似的音视频处理库,甚至在接口和组织模块上模仿 FFmpeg 。

字节流动 1万+

【ffmpeg】ffmpeg命令工具的使用

本文主要阐述了: 1.ffmpeg特点 2.ffmpeg命令行工具的获取 3.ffmpeg.exe的使用 4.ffplay.exe的使用

MichaelKongChina的博客 1337

【Android FFMPEG 开发】Android 中执行 FFMPEG 指令 ( mobile-ffmpeg 开源项目介绍 | 集成 mobile-ffmpeg 框架 )

一、mobile-ffmpeg 开源项目、 二、集成 mobile-ffmpeg 框架

让 学习 成为一种 习惯 ( 韩曙亮 の 技术博客 ) 7114

python 处理视频之 FFmpeg

1 FFmpeg 介绍 FFmpeg[1] 主要网站: 官网:https://www.ffmpeg.org/ Github地址:https://github.com/FFmpeg/FFmpeg 1.1 ffmpeg 组成[2] 构成 FFmpeg 主要有三个部分: 第一部分是四个作用不同的工具软件,分别是: ffmpeg.exe:音视频转码、转换器 ffplay.exe:简单的音视频播放器 ffserver.exe:流媒体服务器 ffprobe.exe:简单的多媒体码流分析器 第二部分是可以供开发者

我不是码农的博客~~~ 3878

macOS上编译android的ffmpeg及ffmpeg.c

前段时间介绍过使用xcode和qt creator编译调试ffmepg.c,运行平台是在macOS上,本文拟介绍下android平台如何用NDK编译链编译ffmepg库并使用。macOS上使用qt creator编译调试ffmpeg.cmacOS上将ffmpeg.c编译成Framework其一,分别介绍使用GCC和CLang编译器来编译ffmpeg库的方法;其二,介绍如何将ffmpeg的多个so库打包成1个so库之法;

老中医的博客 1453

SRAM:SRAM入门指南与工作原理

SRAM(Static Random Access Memory),即静态随机存取存储器,是一种能够读取和写入数据的内存(RAM)。它使用由晶体管组成的触发器来存储数据,只要有电源供应,数据就可以稳定地保存。与动态随机存取存储器(DRAM)不同,SRAM 不需要周期性地刷新来保持数据。

weixin_42896509的博客 1万+

vue使用 APlayer+Meting实现音乐播放,支持多平台音乐:网易云、腾讯、虾米、酷狗、百度

  我之前写过一篇博客:使用 APlayer 实现音乐播放器,虽然 APlayer 让我实现了想要的音乐播放器效果,但是音频列表 audio 的音频链接、音频封面、歌词等,是需要自己去补充的。   那么这些数据从哪里来呢?   我昨天有发愁一会儿会儿,也去搜了获取音乐列表的接口,可以发请求去获取数据嘛。   也有瞅见MetingJS,A powerful plugin connect APlayer and Meting,一个连接APlayer和Meting的功能强大的插件,附上GitHub地址:https

小R.的博客 4798

【FFmpeg】调用ffmpeg进行H264软编

从上面这一系列的函数调用来看,大致操作流程和数据走向大约是 1.编码器的创建和初始化(avcodec_find_encoder) 2.编码器上下文的创建和初始化(avcodec_alloc_context3) 3.创建编码器输出信息,使用AVPacket进行存储(av_packet_alloc) 4.打开编码器(avcodec_open2) 5.创建编码器输入信息,使用AVFrame进行存储(av_frame_alloc) 6.获取编码器输入信息的数据Buffer(av_frame_get_buffer)

weixin_42877471的博客 1864

小红书UID泄露风险揭秘:如何防止你的手机号被社工库关联(附防护指南)

本文揭示了小红书UID泄露的严重风险,详细解析了UID与手机号关联后被社工库利用的完整链条。通过分析黑产的数据整合技术,提供从基础到进阶的防护策略,包括密码管理、账号隔离和应急响应措施,帮助用户有效防范个人信息泄露风险。

ol789012345的博客 1510

【FFmpeg】FFmpeg 帮助文档使用

一、ffmpeg 命令帮助文档、 1、FFmpeg 命令帮助基本信息、 2、FFmpeg 命令帮助高级信息、 3、FFmpeg 命令帮助完整信息、 二、ffplay 命令帮助文档、 三、ffprobe 命令帮助文档、 四、帮助命令查找技巧、

让 学习 成为一种 习惯 ( 韩曙亮 の 技术博客 ) 2824

手把手教你 Ubuntu 24.04 离线安装 Ollama

本文介绍 Ubuntu 下离线安装 Ollama 并使用 Ollama 部署 llama3.1-70b 大模型

举世誉之而不加劝,举世非之而不加沮,定乎内外之分,辩乎荣辱之境,斯已矣。 1018

图解电动汽车:电动汽车主要参数

动力性指标 汽车的动力性指标主要有最高车速、加速时间、最大爬坡等,体现了汽车在行驶过程中能达到的极限运动水平。对于电动汽车,其动力性由搭载的驱动电动机决定,主要的参数包括最大扭矩、额定功率、最大功率、最大转速等。 功率是指物体在单位时间内所做的功的多少,是描述做功快慢的物理量,单位是 kW。 扭矩是指机械元件转动的力矩,也称转矩,表示转动力量的大小,单位是 N·m。 转速是指发动机/电动机的转速,的单位是 rpm,即转每分钟。额定转速是指在额定功率下电动机的转速,最大转速则是在最大功率下电动机的转速。

程序员「阿基米东」的编程之旅 2万+

python ffmpeg模块,python执行ffmpeg

python执行ffmpeg命令能拿到ffmpeg正常输出ffmpeg抛出异常时可以拿到异常信息返回ffmpeg处理进度以下代码依赖的pexpect,progressbar需要安装下import pexpectimport subprocessimport progressbarimport loggingdef exec_progress(command, video_duration_seco...

weixin_35755434的博客 2559

小波变换完全指南:从原理到实践的深度解析

在信号处理领域,傅里叶变换长期以来一直是频域分析的主要工具。然而,傅里叶变换存在一个根本性的局限:它只能告诉我们信号中包含哪些频率成分,却无法告诉我们这些频率成分在什么时刻出现。这就像是你知道一首歌用了哪些音符,却不知道这些音符的演奏顺序。小波变换(Wavelet Transform) 应运而生,它完美地解决了这个问题。小波变换不仅能够提供频率信息,还能同时提供时间信息,实现了信号的时频联合分析。本文将带你从零开始,深入理解小波变换的原理、实现和应用。傅里叶变换的定义如下: 它使用正弦和余弦这样的全局基函数

电脑管家 210

【FFMPEG】gstreamer插件调用ffmpeg 详解

https://blog.youkuaiyun.com/datamining2005/article/details/77676849 Gstreamer调用FFMPEG解析 ----Gstreamer 是如何操作ffmpeg的,以及ffmpeg是如何demux的(AVI 容器格式为例) AVI容器格式较为简单,所以这里用AVI为例,分析gstreamer如何通过ffmpeg来对多媒体文件demux,获得原...

Linux Android Web 2656

从零到精通:BLDC电机驱动电路详解与设计思路

这套电机驱动电路从核心控制器到反馈采集模块,涉及了BLDC电机驱动的方方面面。每一个模块的设计和选择都需要综合考虑系统需求和实际使用环境。在实际应用中,很多细微的设计改进都会显著影响电机的运行性能。

weixin_43199439的博客 3101

HBase骚操作之数据加载方式BulkLoad

本文研究了一种HBase BulkLoad的入库方式,该方式利用HBase的数据信息按照特定格式存储在hdfs内这一原理,直接在HDFS中生成持久化的HFile数据格式文件,然后上传至合适位置,即完成巨量数据快速入库的办法。该方式配合MapReduce完成,高效便捷,而且不占用Region资源,增添负载,在大数据量写入时能极大的提高写入效率,并降低对Hbase节点的写入压力。HBase BulkLoad对于异构数据源的合并及大量数据一次性导入具有重要指导意义,相比HBase Put操作在性能上具有较高的优势

石榴姐yyds 7789

【FFMPEG】使用 ffmpeg 推 RTSP 流

在现代多媒体应用中,实时流媒体传输(RTSP)是一项重要技术。它允许我们将音视频内容实时传输到远程服务器,从而实现实时观看和监控。FFmpeg 是一个强大的多媒体处理工具,支持多种音视频格式和流媒体协议。本文将介绍如何在 macOS 上使用 FFmpeg 推送 RTSP 流。在 macOS 上安装和配置 FFmpeg。搭建 RTSP 服务。使用 FFmpeg 将本地视频文件推送到 RTSP 服务。使用 FFmpeg 将摄像头视频推送到 RTSP 服务。

baidu_32631625的博客 3055

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

macOs上交叉编译ffmpeg及安装ffmpeg工具

本文详细介绍了在MacBook Pro(macOS 14.6.1)上编译安装FFmpeg的完整过程。首先下载并解压FFmpeg 7.0.2源码,解决编译时遇到的nasm/yasm依赖问题。然后重点说明了Android平台的交叉编译配置,包括NDK路径设置、环境变量配置和自定义编译脚本的编写。最后展示了如何在macOS系统上安装预编译的FFmpeg工具链,包括环境变量配置和权限问题的解决方法。整个过程涵盖了从源码编译到工具安装的完整流程,为在macOS系统上使用FFmpeg提供了详细指导。

wangyongyao1989的博客 1387

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Ffmpeg系列之 Ffmpeg编译以及基本命令

FFmpeg 是一个功能强大、开源免费的跨平台多媒体处理工具集,广泛用于音视频的录制、转换、流媒体处理、滤镜应用等任务。以下是 FFmpeg 的基本功能介绍:ffmpeg:命令行工具,用于音视频转码、剪辑、合并等。ffplay:简易的音视频播放器(基于 SDL)。ffprobe:用于分析媒体文件信息(如格式、编码、时长、码率等)。libavcodec:编解码库,支持大量音视频编解码器。libavformat:容器格式处理库(如 MP4、MKV、AVI、FLV 等)。

Minilinux2018的博客 1270

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

Ffmpeg截图

 视频文件截图所用命令 ffmpeg -i e:/13.flv -y -f image2 -ss 08.010 -t 0.001 -s 352x240 b.jpg 截取 13.flv 8秒的图像 图片大小为 352x240,名称为b.jpgcodes:/** * 通过Ffmpeg 截取视频图像 * author:刘坤林 * time:2010.12.12 */ package tools; import java.util.List; public class Snapshot {

Jason20075563的专栏 7876

iOS下使用FFMPEG的一些总结

ffmpeg是一个多平台多媒体处理工具,处理视频和音频的功能非常强大。目前在网上搜到的iOS上使用FFMPEG的资料都比较陈旧,而FFMPEG更新迭代比较快; 且网上的讲解不够详细,对于初次接触FFMPEG的新手(例如我)来说确实不太好使用。为了防止忘记,这里对iOS下使用FFMPEG做一个总结。 1. FFMPEG层次结构的简单理解 要使用FFMPEG,首先需要理解F

lkeplei的专栏 2589
上一篇: 在ffmpeg中增加libavformat库所支持格式的媒体文件
下一篇: tbr tbn tbc
pointfish
博客等级 码龄17年 58粉丝 11原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值