ffmpeg视频处理神器学习基础笔记

FFmpeg文档汇总:https://ffmpeg.org/documentation.html

FFmpeg filters文档:https://ffmpeg.org/ffmpeg-filters.html

视频处理

  • 视频压缩
ffmpeg -y -i /storage/emulated/0/1/input.mp4 -b 2097k -r 30 -vcodec libx264 -preset superfast /storage/emulated/0/1/result.mp4
  • 视频拼接
ffmpeg -y -f concat -safe 0 -i Cam01.txt -c copy Cam01.mp4

这种合并方式的适用场景是:当容器格式不支持文件层次的合并,而又不想(不需要)进行再编码的操作的时候。这种方式对源视频同样有【同格式同性质】的要求

Cam01.txt文件里面的内容类似如下(要改成全路径形式)

file 'input1.mp4'

file 'input2.mp4'

file 'input3.mp4'

  • 视频转图片(每隔一秒截取一张图)
ffmpeg -y -i /storage/emulated/0/1/input.mp4 -f image2 -r 1 -q:v 10 -preset superfast /storage/emulated/0/1/%3d.jpg
  • 截取指定时间的一张图)
ffmpeg -y -i /storage/emulated/0/1/input.mp4 -f image2 -ss 00:00:03 -vframes 1 -preset superfast /storage/emulated/0/1/result.jpg
  • 添加背景音乐(支持调节原音和配乐的音量)
ffmpeg -y -i /storage/emulated/0/1/input.mp4 -i /storage/emulated/0/1/input.mp3 -filter_complex [0:a]aformat=sample_fmts=fltp:sample_rates=44100:channel_layouts=stereo,volume=0.2[a0];[1:a]aformat=sample_fmts=fltp:sample_rates=44100:channel_layouts=stereo,volume=1[a1];[a0][a1]amix=inputs=2:duration=first[aout] -map [aout] -ac 2 -c:v copy -map 0:v:0 -preset superfast /storage/emulated/0/1/result.mp4
  • 添加水印
ffmpeg -y -i /storage/emulated/0/1/input.mp4 -i /storage/emulated/0/1/input.png -filter_complex [0:v]scale=iw:ih[outv0];[1:0]scale=0.0:0.0[outv1];[outv0][outv1]overlay=0:0 -preset superfast /storage/emulated/0/1/result.mp4
  • Gif转视频
ffmpeg -y -i /storage/emulated/0/1/input.gif -pix_fmt yuv420p -preset superfast /storage/emulated/0/1/result.mp4
  • 视频转Gif
ffmpeg -y -ss 0 -t 7 -i /storage/emulated/0/1/input.mp4 -r 5 -s 280x606 -preset superfast /storage/emulated/0/1/result.gif
  • 图片合成视频(带动画)
ffmpeg -y -loop 1 -r 25 -i /storage/emulated/0/1/input.png -vf zoompan=z=1.1:x='if(eq(x,0),100,x-1)':s='960*540' -t 10 -pix_fmt yuv420p /storage/emulated/0/1/result.mp4

音频处理

  • 音频拼接
ffmpeg -y -i "concat:123.mp3|124.mp3" -acodec copy output.mp3

-i代表输入参数

contact:123.mp3|124.mp3代表着需要连接到一起的音频文件

-acodec copy output.mp3 重新编码并复制到新文件中

  • 音频混音
ffmpeg -y -i 124.mp3 -i 123.mp3 -filter_complex amix=inputs=2:duration=first:dropout_transition=2 -f mp3 remix.mp3

-i代表输入参数

-filter_complex ffmpeg滤镜功能,非常强大,详细请查看文档

amix是混合多个音频到单个音频输出

inputs=2代表是2个音频文件,如果更多则代表对应数字

duration 确定最终输出文件的长度

longest(最长)|shortest(最短)|first(第一个文件)

dropout_transition The transition time, in seconds, for volume renormalization when an input stream ends. The default value is 2 seconds.

-f mp3 输出文件格式

  • 音频裁剪
ffmpeg -y -i 124.mp3 -vn -acodec copy -ss 00:00:00 -t 00:01:32 output.mp3

-i代表输入参数

-acodec copy output.mp3 重新编码并复制到新文件中

-ss 开始截取的时间点

-t 截取音频时间长度

  • 音频格式转换
ffmpeg -y -i null.ape -ar 44100 -ac 2 -ab 16k -vol 50 -f mp3 null.mp3

-i代表输入参数

-acodec aac(音频编码用AAC)

-ar 设置音频采样频率

-ac 设置音频通道数

-ab 设定声音比特率

-vol <百分比> 设定音量

高级用法

  • 图片+视频+视频 混合拼接
ffmpeg -y -loop 1 -framerate 25 -t 10.0 -i /storage/emulated/0/1/input.jpg -ss 5.0 -t 5.04 -accurate_seek -i /storage/emulated/0/1/input.mp4 -ss 0.0 -t 5.921 -accurate_seek -i /storage/emulated/0/1/input2.mp4 -f lavfi -t 10.0 -i anullsrc=channel_layout=stereo:sample_rate=44100 -filter_complex [0:v]scale=260.0:260.0,pad=320:260:30.0:0.0,setdar=320/260[outv0];[1:v]scale=320.0:256.0,pad=320:260:0.0:2.0,setdar=320/260[outv1];[2:v]scale=320.0:180.0,pad=320:260:0.0:40.0,setdar=320/260[outv2];[outv0][outv1][outv2]concat=n=3:v=1:a=0:unsafe=1[outv];[3:a][1:a][2:a]concat=n=3:v=0:a=1[outa] -map [outv] -map [outa] -r 25 -b 1M -f mp4 -t 20.961 -vcodec libx264 -c:a aac -pix_fmt yuv420p -s 320x260 -preset superfast /storage/emulated/0/1/result.mp4
  • 视频[片尾]添加3秒的图片视频
ffmpeg -y -i /storage/emulated/0/1/input.mp4 -loop 1 -framerate 25 -t 3.0 -i /storage/emulated/0/1/input.png -f lavfi -t 3.0 -i anullsrc=channel_layout=stereo:sample_rate=44100 -filter_complex [0:v]scale=iw:ih[outv0];[1:v]scale=iw:ih[outv1];[outv0][outv1]concat=n=2:v=1:a=0:unsafe=1[outv];[0:a][2:a]concat=n=2:v=0:a=1[outa] -map [outv] -map [outa] -r 25 -b 1M -f mp4 -vcodec libx264 -c:a aac -pix_fmt yuv420p -s 960x540 -preset superfast /storage/emulated/0/1/result.mp4
  • 视频[片头]添加3秒的图片视频
ffmpeg -y -loop 1 -framerate 1 -t 3 -i /storage/emulated/0/1/input.png -i /storage/emulated/0/1/input.mp4 -f lavfi -t 3.0 -i anullsrc=channel_layout=stereo:sample_rate=44100 -filter_complex [0:v]scale=iw:ih[outv0];[1:v]scale=iw:ih[outv1];[outv0][outv1]concat=n=2:v=1:a=0:unsafe=1[outv];[2:a][1:a]concat=n=2:v=0:a=1[outa] -map [outv] -map [outa] -r 15 -b 1M -f mp4 -vcodec libx264 -c:a aac -pix_fmt yuv420p -s 960x540 -preset superfast /storage/emulated/0/1/result.mp4

ffmpeg常用参数

a、通用选项

-L license
-h 帮助
-fromats 显示可用的格式,编解码的,协议的...
-f fmt 强迫采用格式fmt
-I filename 输入文件
-y 覆盖输出文件
-t duration 设置纪录时间 hh:mm:ss[.xxx]格式的记录时间也支持
-ss position 搜索到指定的时间 [-]hh:mm:ss[.xxx]的格式也支持
-title string 设置标题
-author string 设置作者
-copyright string 设置版权
-comment string 设置评论
-target type 设置目标文件类型(vcd,svcd,dvd) 所有的格式选项(比特率,编解码以及缓冲区大小)自动设置,只需要输入如下的就可以了:ffmpeg -i myfile.avi -target vcd /tmp/vcd.mpg
-hq 激活高质量设置
-itsoffset offset 设置以秒为基准的时间偏移,该选项影响所有后面的输入文件。该偏移被加到输入文件的时戳,定义一个正偏移意味着相应的流被延迟了 offset秒。 [-]hh:mm:ss[.xxx]的格式也支持

b、视频选项

-b bitrate 设置比特率,缺省200kb/s
-r fps 设置帧频 缺省25
-s size 设置帧大小 格式为WXH 缺省160X128.下面的简写也可以直接使用:
Sqcif 128X96 qcif 176X144 cif 252X288 4cif 704X576
-aspect aspect 设置横纵比 4:3 16:9 或 1.3333 1.7777
-croptop size 设置顶部切除带大小 像素单位
-cropbottom size –cropleft size –cropright size
-padtop size 设置顶部补齐的大小 像素单位
-padbottom size –padleft size –padright size –padcolor color 设置补齐条颜色(hex,6个16进制的数,红:绿:兰排列,比如 000000代表黑色)
-vn 不做视频记录
-bt tolerance 设置视频码率容忍度kbit/s
-maxrate bitrate设置最大视频码率容忍度
-minrate bitreate 设置最小视频码率容忍度
-bufsize size 设置码率控制缓冲区大小
-vcodec codec 强制使用codec编解码方式。如果用copy表示原始编解码数据必须被拷贝。
-sameq 使用同样视频质量作为源(VBR)
-pass n 选择处理遍数(1或者2)。两遍编码非常有用。第一遍生成统计信息,第二遍生成精确的请求的码率
-passlogfile file 选择两遍的纪录文件名为file

c、高级视频选项

-g gop_size 设置图像组大小
-intra 仅适用帧内编码
-qscale q 使用固定的视频量化标度(VBR)
-qmin q 最小视频量化标度(VBR)
-qmax q 最大视频量化标度(VBR)
-qdiff q 量化标度间最大偏差 (VBR)
-qblur blur 视频量化标度柔化(VBR)
-qcomp compression 视频量化标度压缩(VBR)
-rc_init_cplx complexity 一遍编码的初始复杂度
-b_qfactor factor 在p和b帧间的qp因子
-i_qfactor factor 在p和i帧间的qp因子
-b_qoffset offset 在p和b帧间的qp偏差
-i_qoffset offset 在p和i帧间的qp偏差
-rc_eq equation 设置码率控制方程 默认tex^qComp
-rc_override override 特定间隔下的速率控制重载
-me method 设置运动估计的方法 可用方法有 zero phods log x1 epzs(缺省) full
-dct_algo algo 设置dct的算法 可用的有 0 FF_DCT_AUTO 缺省的DCT 1 FF_DCT_FASTINT 2 FF_DCT_INT 3 FF_DCT_MMX 4 FF_DCT_MLIB 5 FF_DCT_ALTIVEC
-idct_algo algo 设置idct算法。可用的有 0 FF_IDCT_AUTO 缺省的IDCT 1 FF_IDCT_INT 2 FF_IDCT_SIMPLE 3 FF_IDCT_SIMPLEMMX 4 FF_IDCT_LIBMPEG2MMX 5 FF_IDCT_PS2 6 FF_IDCT_MLIB 7 FF_IDCT_ARM 8 FF_IDCT_ALTIVEC 9 FF_IDCT_SH4 10 FF_IDCT_SIMPLEARM
-er n 设置错误残留为n 1 FF_ER_CAREFULL 缺省 2 FF_ER_COMPLIANT 3 FF_ER_AGGRESSIVE 4 FF_ER_VERY_AGGRESSIVE
-ec bit_mask 设置错误掩蔽为bit_mask,该值为如下值的位掩码 1 FF_EC_GUESS_MVS (default=enabled) 2 FF_EC_DEBLOCK (default=enabled)
-bf frames 使用frames B 帧,支持mpeg1,mpeg2,mpeg4
-mbd mode 宏块决策 0 FF_MB_DECISION_SIMPLE 使用mb_cmp 1 FF_MB_DECISION_BITS 2 FF_MB_DECISION_RD
-4mv 使用4个运动矢量 仅用于mpeg4
-part 使用数据划分 仅用于mpeg4
-bug param 绕过没有被自动监测到编码器的问题
-strict strictness 跟标准的严格性
-aic 使能高级帧内编码 h263+
-umv 使能无限运动矢量 h263+
-deinterlace 不采用交织方法
-interlace 强迫交织法编码仅对mpeg2和mpeg4有效。当你的输入是交织的并且你想要保持交织以最小图像损失的时候采用该选项。可选的方法是不交织,但是损失更大
-psnr 计算压缩帧的psnr
-vstats 输出视频编码统计到vstats_hhmmss.log
-vhook module 插入视频处理模块 module 包括了模块名和参数,用空格分开

D、音频选项

-ab bitrate 设置音频码率
-ar freq 设置音频采样率
-ac channels 设置通道 缺省为1
-an 不使能音频纪录
-acodec codec 使用codec编解码

E、音频/视频捕获选项

-vd device 设置视频捕获设备。比如/dev/video0
-vc channel 设置视频捕获通道 DV1394专用
-tvstd standard 设置电视标准 NTSC PAL(SECAM)
-dv1394 设置DV1394捕获
-av device 设置音频设备 比如/dev/dsp

F、高级选项

-map file:stream 设置输入流映射
-debug 打印特定调试信息
-benchmark 为基准测试加入时间
-hex 倾倒每一个输入包
-bitexact 仅使用位精确算法 用于编解码测试
-ps size 设置包大小,以bits为单位
-re 以本地帧频读数据,主要用于模拟捕获设备
-loop 循环输入流(只工作于图像流,用于ffserver测试)

相关推荐
<p style="margin: 0px; max-width: 100%; box-sizing: border-box; color: #333333; font-family: 'Hiragino Sans GB', 'Microsoft Yahei', arial, 宋体, 'Helvetica Neue', Helvetica, STHeiTi, sans-serif; font-size: 14px; background-color: #ffffff;"><span style="max-width: 100%; box-sizing: border-box; font-size: 18px;"><strong>学习计划:</strong></span></p> <p style="margin: 0px; max-width: 100%; box-sizing: border-box; color: #333333; font-family: 'Hiragino Sans GB', 'Microsoft Yahei', arial, 宋体, 'Helvetica Neue', Helvetica, STHeiTi, sans-serif; font-size: 14px; background-color: #ffffff;">1、每天学习1个小时,大概1个月完成。 2、认真听讲,要自己揣摩,明白原理。 3、动手实践、必须要多做课后练习题,遇到不会的,及时提问。</p> <p style="margin: 0px; max-width: 100%; box-sizing: border-box; color: #333333; font-family: 'Hiragino Sans GB', 'Microsoft Yahei', arial, 宋体, 'Helvetica Neue', Helvetica, STHeiTi, sans-serif; font-size: 14px; background-color: #ffffff;">课程目标:</p> <p style="margin: 0px; max-width: 100%; box-sizing: border-box; color: #333333; font-family: 'Hiragino Sans GB', 'Microsoft Yahei', arial, 宋体, 'Helvetica Neue', Helvetica, STHeiTi, sans-serif; font-size: 14px; background-color: #ffffff;">从一个纯小白,到真正理解变量的实质,指针的实质,学会C++类及面向对象编程</p> <p style="margin: 0px; max-width: 100%; box-sizing: border-box; color: #333333; font-family: 'Hiragino Sans GB', 'Microsoft Yahei', arial, 宋体, 'Helvetica Neue', Helvetica, STHeiTi, sans-serif; font-size: 14px; background-color: #ffffff;">课程简介:</p> <p style="margin: 0px; max-width: 100%; box-sizing: border-box; color: #333333; font-family: 'Hiragino Sans GB', 'Microsoft Yahei', arial, 宋体, 'Helvetica Neue', Helvetica, STHeiTi, sans-serif; font-size: 14px; background-color: #ffffff;"><span style="max-width: 100%; box-sizing: border-box; color: #ff0000;"><span style="max-width: 100%; box-sizing: border-box; font-size: 20px;"><strong><strong><strong>敬告:</strong></strong>该系列的课程在抓紧录制更新中,敬请大家关注。</strong></span></span></p> <p style="margin: 0px; max-width: 100%; box-sizing: border-box; color: #333333; font-family: 'Hiragino Sans GB', 'Microsoft Yahei', arial, 宋体, 'Helvetica Neue', Helvetica, STHeiTi, sans-serif; font-size: 14px; background-color: #ffffff;"><strong>该系列的课程涉及:FFmpeg,WebRTC,SRS,Nginx,Darwin,Live555,等。包括:音视频、流媒体、直播、Android、视频监控28181、等。</strong></p> <p style="margin: 0px; max-width: 100%; box-sizing: border-box; color: #333333; font-family: 'Hiragino Sans GB', 'Microsoft Yahei', arial, 宋体, 'Helvetica Neue', Helvetica, STHeiTi, sans-serif; font-size: 14px; background-color: #ffffff;"><strong>---------------------------------------------------</strong></p> <p style="margin: 0px; max-width: 100%; box-sizing: border-box; color: #333333; font-family: 'Hiragino Sans GB', 'Microsoft Yahei', arial, 宋体, 'Helvetica Neue', Helvetica, STHeiTi, sans-serif; font-size: 14px; background-color: #ffffff;"> </p> <p style="margin: 0px; max-width: 100%; box-sizing: border-box; color: #333333; font-family: 'Hiragino Sans GB', 'Microsoft Yahei', arial, 宋体, 'Helvetica Neue', Helvetica, STHeiTi, sans-serif; font-size: 14px; background-color: #ffffff;"> </p> <p style="margin: 0px; max-width: 100%; box-sizing: border-box; color: #333333; font-family: 'Hiragino Sans GB', 'Microsoft Yahei', arial, 宋体, 'Helvetica Neue', Helvetica, STHeiTi, sans-serif; font-size: 14px; background-color: #ffffff;"><strong>---------------------------------------------------</strong></p> <p style="margin: 0px; max-width: 100%; box-sizing: border-box; color: #333333; font-family: 'Hiragino Sans GB', 'Microsoft Yahei', arial, 宋体, 'Helvetica Neue', Helvetica, STHeiTi, sans-serif; font-size: 14px; background-color: #ffffff;"><span style="max-width: 100%; box-sizing: border-box; color: #ff0000;"><span style="max-width: 100%; box-sizing: border-box; font-size: 20px;"><strong>给学员(从小白到大牛)的3年学习路径及计划</strong></span></span></p> <p style="margin: 0px; max-width: 100%; box-sizing: border-box; color: #333333; font-family: 'Hiragino Sans GB', 'Microsoft Yahei', arial, 宋体, 'Helvetica Neue', Helvetica, STHeiTi, sans-serif; font-size: 14px; background-color: #ffffff;">技术方面分三块:</p> <p style="margin: 0px; max-width: 100%; box-sizing: border-box; color: #333333; font-family: 'Hiragino Sans GB', 'Microsoft Yahei', arial, 宋体, 'Helvetica Neue', Helvetica, STHeiTi, sans-serif; font-size: 14px; background-color: #ffffff;"><strong>1.纯开发技术方向</strong></p> <p style="margin: 0px; max-width: 100%; box-sizing: border-box; color: #333333; font-family: 'Hiragino Sans GB', 'Microsoft Yahei', arial, 宋体, 'Helvetica Neue', Helvetica, STHeiTi, sans-serif; font-size: 14px; background-color: #ffffff;"><strong>2.音视频流媒体专业方向</strong></p> <p style="margin: 0px; max-width: 100%; box-sizing: border-box; color: #333333; font-family: 'Hiragino Sans GB', 'Microsoft Yahei', arial, 宋体, 'Helvetica Neue', Helvetica, STHeiTi, sans-serif; font-size: 14px; background-color: #ffffff;"><strong>3.项目实战</strong></p> <p style="margin: 0px; max-width: 100%; box-sizing: border-box; color: #333333; font-family: 'Hiragino Sans GB', 'Microsoft Yahei', arial, 宋体, 'Helvetica Neue', Helvetica, STHeiTi, sans-serif; font-size: 14px; background-color: #ffffff;"><strong>---------------------------------------------------</strong></p> <p style="margin: 0px; max-width: 100%; box-sizing: border-box; color: #333333; font-family: 'Hiragino Sans GB', 'Microsoft Yahei', arial, 宋体, 'Helvetica Neue', Helvetica, STHeiTi, sans-serif; font-size: 14px; background-color: #ffffff;"><span style="max-width: 100%; box-sizing: border-box; color: #ff0000;"><strong>1.纯开发技术方向</strong></span></p> <p style="margin: 0px; max-width: 100%; box-sizing: border-box; color: #333333; font-family: 'Hiragino Sans GB', 'Microsoft Yahei', arial, 宋体, 'Helvetica Neue', Helvetica, STHeiTi, sans-serif; font-size: 14px; background-color: #ffffff;">(1) C++必须要过硬(至少学会10本经典好书)</p> <p style="margin: 0px; max-width: 100%; box-sizing: border-box; color: #333333; font-family: 'Hiragino Sans GB', 'Microsoft Yahei', arial, 宋体, 'Helvetica Neue', Helvetica, STHeiTi, sans-serif; font-size: 14px; background-color: #ffffff;">(2) 系统级编程(Windows、Linux),必须特别熟练系统API,灵活运用</p> <p style="margin: 0px; max-width: 100%; box-sizing: border-box; color: #333333; font-family: 'Hiragino Sans GB', 'Microsoft Yahei', arial, 宋体, 'Helvetica Neue', Helvetica, STHeiTi, sans-serif; font-size: 14px; background-color: #ffffff;">(3) 框架与工具(Qt、MFC):必须精通其中一种。</p> <p style="margin: 0px; max-width: 100%; box-sizing: border-box; color: #333333; font-family: 'Hiragino Sans GB', 'Microsoft Yahei', arial, 宋体, 'Helvetica Neue', Helvetica, STHeiTi, sans-serif; font-size: 14px; background-color: #ffffff;">(4) 架构与设计模式:需要提升一个高度,不再是简单的编码,而是思维模式。</p> <p style="margin: 0px; max-width: 100%; box-sizing: border-box; color: #333333; font-family: 'Hiragino Sans GB', 'Microsoft Yahei', arial, 宋体, 'Helvetica Neue', Helvetica, STHeiTi, sans-serif; font-size: 14px; background-color: #ffffff;">(5) 驱动级别(如果有兴趣,可以深入到驱动级:包括Windows、Linux)</p> <p style="margin: 0px; max-width: 100%; box-sizing: border-box; color: #333333; font-family: 'Hiragino Sans GB', 'Microsoft Yahei', arial, 宋体, 'Helvetica Neue', Helvetica, STHeiTi, sans-serif; font-size: 14px; background-color: #ffffff;">(6) 最好学习点Java+Html+javascript等WEB技术。</p> <p style="margin: 0px; max-width: 100%; box-sizing: border-box; color: #333333; font-family: 'Hiragino Sans GB', 'Microsoft Yahei', arial, 宋体, 'Helvetica Neue', Helvetica, STHeiTi, sans-serif; font-size: 14px; background-color: #ffffff;"><span style="max-width: 100%; box-sizing: border-box; color: #ff0000;"><strong>2.音视频流媒体专业方向</strong></span></p> <p style="margin: 0px; max-width: 100%; box-sizing: border-box; color: #333333; font-family: 'Hiragino Sans GB', 'Microsoft Yahei', arial, 宋体, 'Helvetica Neue', Helvetica, STHeiTi, sans-serif; font-size: 14px; background-color: #ffffff;">(1) 音视频流媒体基础理论:</p> <p style="margin: 0px; max-width: 100%; box-sizing: border-box; color: #333333; font-family: 'Hiragino Sans GB', 'Microsoft Yahei', arial, 宋体, 'Helvetica Neue', Helvetica, STHeiTi, sans-serif; font-size: 14px; background-color: #ffffff;">    必须认真学会,否则看代码就是看天书</p> <p style="margin: 0px; max-width: 100%; box-sizing: border-box; color: #333333; font-family: 'Hiragino Sans GB', 'Microsoft Yahei', arial, 宋体, 'Helvetica Neue', Helvetica, STHeiTi, sans-serif; font-size: 14px; background-color: #ffffff;">(2) 编解码方向:精通h.264,h.265(hevc),</p> <p style="margin: 0px; max-width: 100%; box-sizing: border-box; color: #333333; font-family: 'Hiragino Sans GB', 'Microsoft Yahei', arial, 宋体, 'Helvetica Neue', Helvetica, STHeiTi, sans-serif; font-size: 14px; background-color: #ffffff;"> 包括理论和各个开源库(ffmpeg,libx264,libx265,...)。</p> <p style="margin: 0px; max-width: 100%; box-sizing: border-box; color: #333333; font-family: 'Hiragino Sans GB', 'Microsoft Yahei', arial, 宋体, 'Helvetica Neue', Helvetica, STHeiTi, sans-serif; font-size: 14px; background-color: #ffffff;">(3) 直播方向:  精通各种直播协议(rtsp,rtmp,hls,http-flv,...),</p> <p style="margin: 0px; max-width: 100%; box-sizing: border-box; color: #333333; font-family: 'Hiragino Sans GB', 'Microsoft Yahei', arial, 宋体, 'Helvetica Neue', Helvetica, STHeiTi, sans-serif; font-size: 14px; background-color: #ffffff;"> 钻研各个开源库(live555,darwin,srs,zlmediakit,crtmpserver,...)</p> <p style="margin: 0px; max-width: 100%; box-sizing: border-box; color: #333333; font-family: 'Hiragino Sans GB', 'Microsoft Yahei', arial, 宋体, 'Helvetica Neue', Helvetica, STHeiTi, sans-serif; font-size: 14px; background-color: #ffffff;">(4) 视频监控:  理论+开源库(onvif+281818)(EasyMonitor、iSpy、ZoneMinder(web)、...)  </p> <p style="margin: 0px; max-width: 100%; box-sizing: border-box; color: #333333; font-family: 'Hiragino Sans GB', 'Microsoft Yahei', arial, 宋体, 'Helvetica Neue', Helvetica, STHeiTi, sans-serif; font-size: 14px; background-color: #ffffff;"><span style="max-width: 100%; box-sizing: border-box; color: #ff0000;"><strong>3.项目实战</strong></span></p> <p style="margin: 0px; max-width: 100%; box-sizing: border-box; color: #333333; font-family: 'Hiragino Sans GB', 'Microsoft Yahei', arial, 宋体, 'Helvetica Neue', Helvetica, STHeiTi, sans-serif; font-size: 14px; background-color: #ffffff;">(1) Qt项目:  至少要亲手练习10个实战项目</p> <p style="margin: 0px; max-width: 100%; box-sizing: border-box; color: #333333; font-family: 'Hiragino Sans GB', 'Microsoft Yahei', arial, 宋体, 'Helvetica Neue', Helvetica, STHeiTi, sans-serif; font-size: 14px; background-color: #ffffff;">(网络服务器、多线程、数据库、图像处理、多人聊天、等等)</p> <p style="margin: 0px; max-width: 100%; box-sizing: border-box; color: #333333; font-family: 'Hiragino Sans GB', 'Microsoft Yahei', arial, 宋体, 'Helvetica Neue', Helvetica, STHeiTi, sans-serif; font-size: 14px; background-color: #ffffff;">(2)音视频项目:包括编解码、视频监控、直播等各个方向,都需要亲手实战项目,</p> <p style="margin: 0px; max-width: 100%; box-sizing: border-box; color: #333333; font-family: 'Hiragino Sans GB', 'Microsoft Yahei', arial, 宋体, 'Helvetica Neue', Helvetica, STHeiTi, sans-serif; font-size: 14px; background-color: #ffffff;">包括视频服务器、后台管理系统、前端播放器(多端)</p> <p style="margin: 0px; max-width: 100%; box-sizing: border-box; color: #333333; font-family: 'Hiragino Sans GB', 'Microsoft Yahei', arial, 宋体, 'Helvetica Neue', Helvetica, STHeiTi, sans-serif; font-size: 14px; background-color: #ffffff;"><strong>---------------------------------------------------</strong></p> <p style="margin: 0px; max-width: 100%; box-sizing: border-box; color: #333333; font-family: 'Hiragino Sans GB', 'Microsoft Yahei', arial, 宋体, 'Helvetica Neue', Helvetica, STHeiTi, sans-serif; font-size: 14px; background-color: #ffffff;"> </p> <p style="margin: 0px; max-width: 100%; box-sizing: border-box; color: #333333; font-family: 'Hiragino Sans GB', 'Microsoft Yahei', arial, 宋体, 'Helvetica Neue', Helvetica, STHeiTi, sans-serif; font-size: 14px; background-color: #ffffff;"><img src="https://img-bss.csdnimg.cn/202101280710351145.jpg" alt="" /></p> <p style="margin: 0px; max-width: 100%; box-sizing: border-box; color: #333333; font-family: 'Hiragino Sans GB', 'Microsoft Yahei', arial, 宋体, 'Helvetica Neue', Helvetica, STHeiTi, sans-serif; font-size: 14px; background-color: #ffffff;"> </p> <p style="margin: 0px; max-width: 100%; box-sizing: border-box; color: #333333; font-family: 'Hiragino Sans GB', 'Microsoft Yahei', arial, 宋体, 'Helvetica Neue', Helvetica, STHeiTi, sans-serif; font-size: 14px; background-color: #ffffff;"><strong>具体的内容包括:</strong></p> <p style="margin: 0px; max-width: 100%; box-sizing: border-box; color: #333333; font-family: 'Hiragino Sans GB', 'Microsoft Yahei', arial, 宋体, 'Helvetica Neue', Helvetica, STHeiTi, sans-serif; font-size: 14px; background-color: #ffffff;"> </p> <p style="margin: 0px; max-width: 100%; box-sizing: border-box; color: #333333; font-family: 'Hiragino Sans GB', 'Microsoft Yahei', arial, 宋体, 'Helvetica Neue', Helvetica, STHeiTi, sans-serif; font-size: 14px; background-color: #ffffff;">n 1.全书概览与分析 5<br /><br />1.1 初步认识:做到心中有数 5<br /><br />1.2 图解:章节关系 6<br /><br />1.3 探讨:教学方法论 7<br /><br />1.4 探讨:学习方法论 7<br /><br />1.5 C++的1.0与2.0 8<br /><br />1.6 开发工具Qt5.9和VS2015/7/9 8<br /><br />控制台: 8<br /><br />UI界面: 8<br /><br />1.7 安装并搭建Qt5.9.8开发环境 9<br /><br />1.下载软件Qt Creator 5.9.8 9<br /><br />2.双击开始安装 9<br /><br />3.注册Qt账号 11<br /><br />4.激活Qt账号 12<br /><br />5.选择安装路径 17<br /><br />6.选择“安装组件” 19<br /><br />7.同意“许可协议” 21<br /><br />8.点击“安装”后,请喝杯茶 24<br /><br />1.8 捋起袖子开干:几个小案例 35<br /><br />第一:写代码打印“CS”图形 36<br /><br />第二:写代码打印各种图形(作业) 36<br /><br />1.9 原书第一章剖析 37<br /><br />1.计算机是什么? 37<br /><br />2.程序是什么? 38<br /><br />3.程序设计 38<br /><br />4.C++入门程序示例 40<br /><br />n 第2章 C++基础知识 41<br /><br />2.1 变量和赋值 41<br /><br />2.2 输入和输出 42<br /><br />2.3 数据类型和表达式 43<br /><br />2.4 简单控制流程 44<br /><br />2.5 程序风格 45<br /><br />2.6 x=x-3到底是个什么鬼? 46<br /><br />第3章 更多的控制流程 47<br /><br />3.1 使用布尔表达式 47<br /><br />3.2 多路分支 48<br /><br />3.3 C++循环语句详解 48<br /><br />3.4 设计循环 51<br /><br />3.5 课堂练习 51<br /><br />第4章 过程抽象和返回值的函数 52<br /><br />4.1 自顶向下设计 52<br /><br />4.2 预定义函数 53<br /><br />4.3 程序员自定义函数 53<br /><br />4.4 过程抽象 54<br /><br />4.5 作用域和局部变量 55<br /><br />4.6 重载函数名称 55<br /><br />第5章 用函数完成所有子任务 56<br /><br />5.1 void函数 57<br /><br />5.2 传引用参数 57<br /><br />5.3 使用过程抽象 59<br /><br />5.4 测试和调试函数 59<br /><br />5.5 常规调试技术 59<br /><br />第6章 I/O流——对象和类入门 60<br /><br />6.1 流和基本文件I/O 60<br /><br />6.2 流I/O工具 61<br /><br />6.3 字符I/O 62<br /><br />第7章 数组 63<br /><br />7.1 数组入门 63<br /><br />7.2 函数中的数组 65<br /><br />7.3 数组编程 66<br /><br />7.4 多维数组 67<br /><br />第8章 字符串和向量 68<br /><br />8.1 字符串的数组类型 68<br /><br />8.2 标准string类 69<br /><br />8.3 向量 71<br /><br />第9章 指针和动态数组 71<br /><br />9.1 指针 71<br /><br />9.2 手工动态数组 74<br /><br />第10章 定义类 76<br /><br />10.1 结构体 77<br /><br />10.2 类 78<br /><br />10.3 抽象数据类型 81<br /><br />10.4 继承 82<br /><br />10.5 拷贝构造函数 83<br /><br />10.6 析构函数 84<br /><br />10.7 重载赋值(=)操作符 84<br /><br />第11章 友元函数、重载操作符和数组 86<br /><br />11.1 友元函数 87<br /><br />11.2 重载操作符 88<br /><br />11.3 数组和类 91<br /><br />11.4 类和动态数组 91<br /><br />第12章 独立编译和命名空间 92<br /><br />12.1 独立编译 92<br /><br />12.2 命名空间 93<br /><br />第13章 指针和链表 94<br /><br />第14章 递归 95<br /><br />第15章 继承 96<br /><br />15.1 继承基础 96<br /><br />15.2 继承细节 97<br /><br />15.3 多态性(虚函数) 98<br /><br />第16章 异常处理 100<br /><br />16.1 异常处理基础 100<br /><br />16.2 用于异常处理的编程技术 101<br /><br />第17章 模板 102<br /><br />17.1 用于算法抽象的模板 102<br /><br />17.2 用于数据抽象的模板 103<br /><br />第18章 标准模板库(STL) 104<br /><br />18.1 迭代器 104<br /><br />18.2 容器 105<br /><br />18.3 泛型算法 106<br /><br />18.4 不断进化的C++ 106<br /><br />第19章 Qt界面开发入门 106<br /><br />附录 107</p> <p style="margin: 0px; max-width: 100%; box-sizing: border-box; color: #333333; font-family: 'Hiragino Sans GB', 'Microsoft Yahei', arial, 宋体, 'Helvetica Neue', Helvetica, STHeiTi, sans-serif; font-size: 14px; background-color: #ffffff;"> </p>
©️2020 CSDN 皮肤主题: 酷酷鲨 设计师:CSDN官方博客 返回首页
实付 39.90元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值