当前位置: 首页 > news >正文

ffmpeg 常用命令

 更详细请参考ffmpeg手册,下载ffmpegrelease版后在doc中就有,主页面。video filter 参考ffmpeg-filters.html
-version -formats -demuxers -protocols -muxers -filters -devices —pix_fmts -codecs -sample_fmts -decoders -layouts -encoders -colors -bsfs

-sources :显示所有可用的采集驱动

-sources dshow:显示dshow驱动下可用采集设备 
-sinks :显示所有可用的输出驱动
-dispositions :显示可用的流配置
-buildconf:显示ffmpeg编译前选择的构建配置
-hwaccels:显示支持的硬件加速器
以下可以在ffmpeg -h中可以查看有哪些具体参数的 类型
ffmpeg -h demuxer=flv :查看解复用器flv可以设置的参数,ffmpeg -demuxers查看有哪些复用器
ffmpeg -h muxer=mp4 :查看复用器mp4可以设置的参数 FFmpeg Formats Documentation 
ffmpeg -h decoder=aac:查看解码器aac可以使用的参数  FFmpeg Codecs Documentation 
ffmpeg -h encoder=h264:查看编码器h264可以使用的参数 FFmpeg Codecs Documentation 
ffmpeg -h filter=drawtext:查看滤镜drawtext可以使用的参数 FFmpeg Filters Documentation 
ffmpeg -h bsf=setts:查看比特流过滤器setts可以使用的参数。FFmpeg Bitstream Filters Documentation 
ffmpeg -h protocol=rtmp:查看协议rtmp可以使用的参数,ffmpeg -protocols 查看有哪些协议 FFmpeg Protocols Documentation


ffmpeg -i E:/1/22-.mp4 -ss 11:0 -t 1:0 -b:v 1M -vf setpts=N/FRAME_RATE/TB -af asetpts=N/SR/TB -vcodec hevc_nvenc E:/1/2-.mp4
-vf setpts=N/FRAME_RATE/TB :重置视频时间戳。vf是video filter的缩写。N/FRAME_RATE/TB 中的N表示第N帧,FRAME_RATE 或者 FR 表示视频采样频率(frame rate)也就是帧率,TB是timebase的缩写,表示时间基。计算pts的表达式为N*TB/FR。另外一种计算pts表达式为PTS-STARTPTS
参考:FFmpeg Filters Documentation -toc-setpts_002c-asetpts
-af asetpts=N/SR/TB:重置音频的时间戳,N/SR/TB中的N是NB_SAMPLES的缩写,表示当前音频帧的帧数,SR为SAMPLE_RATE的缩写,表示音频采样率,TB表示音频的时间基。
“-vcodec hevc_nvenc”:对视频进行重编码时,设置视频编码器为hevc_nvenc(主要是利用显卡编码速度快)。hevc_nvenc为英伟达的硬件编码,安装有英伟达支持硬件编码的显卡才能使用该选项,具有加速编码的效果。
ffmpeg支持的硬编码解码器,有的加速明显,有的加速比较慢。

“-codec copy ”:表示对原始编码的视频和音频直接拷贝,相当于“-vcodec copy ”和“-acodec copy”。对视频进行时如果视频帧率或音频采样率不同会出现https://blog.csdn.net/qiushangren/article/details/132418796 中所提到的问题
“-i E:/1/22-.mp4”:设置输入视频
“-ss 1:1:1”:截取视频时设置开始时间1:1:1  。如果-ss 参数在-i参数之前,会定位到该时间点之后最近的i帧或p帧,有时会出现开头视频解码错误(可能定位到了一个p帧),这时可以通过截取1分钟视频,将时间往前调几秒钟进行尝试。在视频文件中两i帧之间的间隔从几毫秒到几十秒不等。
对截取视频进行重新编码的方案,会先找目标时间点附近往前的最近的i帧,然后精确定位到时间点的帧进行重编码。

“-t 1:1:1”:截取视频时设置时长1:1:1  ,放在-i之前,表示对输入视频进行时长限制,读取到对应时长就不读了,放在-i之后表示对输出进行时长限制,写完对应时长就不写了。
“-to 2:2:2”:截取视频时设置截止时间2:2:2 ,放在-i之前,表示对输入视频进行截止时间限制,读取到对应截止时间就不读了,放在-i之后表示对输出进行截止时间限制,写完对应截止时间就不写了。这个与-ss一起使用时,需要注意与-ss 放置的位置要一致
"-b:v 1M":设置视频流码率1M”

ffmpeg -ss 22:30 -accurate_seek -i E:/1/1.mp4 -t 2:0 -avoid_negative_ts 1 -c copy  E:/1/11-.mp4

“-avoid_negative_ts 1” :结合-c copy 使用。直接跳转到目标时间点最近的I帧开始,避免出现视频解码错误的现象。avoid_negative_ts的值为[-1,2],为正数时才会进行跳转,默认值为0.
“-accurate_seek” :结合-ss使用,允许ss是否精确定位。(暂时没发现有什么特殊之处)
“-start_at_zero” :结合-ss使用,当-ss 放在 -i前面时才用到该参数。

ffprobe -show_frames a.mp4 :列举并显示视频文件a.mp4 所有的帧的信息

ffmpeg -f concat -i E:/1/videos.txt -safe 0 -codec copy E:/1/a.mp4    //拼接多个视频文件。(视频拼接需要视频的码率、帧率、宽、高等等参数一致,对于有差异的视频需要通过filter对其进行处理后格式变成一致才能进行拼接。判断视频参数是否一致,需要通过ffprobe进行探查)

“-f concate” 表示拼接视频
“-i E:/1/videos.txt” :指定存放要拼接的文件的内容。可以对满足拼接条件的多个文件进行拼接。
-safe 0:允许使用不安全的文件名,这对于指定文件路径非常有用。如果不加这个参数,当文件名包含特殊字符时,可能会导致拼接失败。

ffmpeg -i input1.mp4 -i input2.mp4 -filter_complex concat=n=2:v=1:a=1 output.mp4
拼接input1.mp4和input2.mp4两个视频文件,output.mp4是拼接后的输出文件。其中,n表示需要拼接的文件个数,v表示是否拼接视频流,v=1表示拼接视频流,v=0表示不拼接视频流,a表示是否拼接音频流。

ffmpeg -i 1.mp3 -i 2.mp3 -filter_complex amerge -ac 2 -c:a libmp3lame -q:a 4 output.mp3:
-ac:设定声音的channel数 
-c:a libmp3lame:指定音频编码器为libmp3lame
-q:a:表示输出的音频质量,一般是1到5之间(1 为质量最高) 

ffmpeg -i 1.mp3 -i 2.mp3 -i 3.mp3 -filter_complex "[1:a]adelay=1000[a1];[2:a]adelay=1000[a2];[0:a][a1][a2]concat=n=3:v=0:a=1" output.mp3: 拼接三段音频,在每段之间加入一秒的空白。
-filter_complex  “[1:a]adelay=1000[a1]”:第2段素材的音频(如果是视频就是[1:v]),延迟1000毫秒播放,并且赋值为a1,供后面使用。同理定义了a2。
-filter_complex  “[0:a][a1][a2]concat=n=3“:将第一段素材的音频、a1和a2拼接,n=3表示三段。
v=0:a=1:不要声音,只要音频。

ffmpeg -i 1.mp4 -i bg.jpg -i font.png -filter_complex "[0:v]scale=1080:-1[video];[1:v][video]overlay=x=0:y=(1920-h)/2[v1];[v1][2:v]overlay" -codec:a copy  output1.mp4:bg.jpg是1080*1920的竖版图片用作背景,font.png是1080*1920的带透明通道的字幕图片。目的是在背景图中间嵌入(合并)视频1.mp4,并对1.mp4保持宽为1080的自适应缩放,最后合并上字幕。
[0:v]scale=1080:-1[video]:第一个素材的只取视频,按比例resize成宽1080,输出赋值为video。
[1:v][video]overlay=x=0:y=(1920-h)/2[v1]:将第video放在背景图上层,左上角起点位置是x,y,输出赋值为v1.
[v1][2:v]overlay:将第三个素材的视频放在v1上层。

音频、视频合并

ffmpeg -i 1.mp4 -i 1.mp3 -filter_complex "[1:a]volume=0.3[a1];[0:a][a1]amix=inputs=2:duration=first[a]" -map 0:v -map "[a]" -c:v copy -c:a aac -y output.mp4:视频合成,  原视频有声音,在保持原视频声音不变的情况下,添加背景音,并让背景音音量变小。
[1:a]volume=0.3[a1]:第二个素材的音频音量取30%,输出赋值为a1;
[0:a][a1]amix=inputs=2:duration=first[a]:第一个素材(视频)的声音和背景音混合,时长为第一个素材的声音,输出赋值a;
-map 0:v:视频流式拼接,这里只有一个视频;
-map "[a]":音频流式拼接,这里取刚刚输出的a;
-c:v copy:视频编码不变;
-c:a aac :音频编码acc。
-y:输出文件覆盖

ffmpeg -i 1.mp4 -i 1.mp3 -filter_complex "[0:v]trim=0:10.1[v];[1:a]adelay=1000[a];[v][a]concat=n=1:v=1:a=1" -c:v libx264 -c:a aac -movflags +faststart output.mp4:视频合成,  去掉原视频的声音,重新配音,并且声音前增加1秒的空白。
[0:v]trim=0:10.1[v]:视频取1-10.1秒,这里单位是秒,输出赋值v;
[1:a]adelay=1000[a]:音频演示1000毫秒播放,这里单位是毫秒;
[v][a]concat=n=1:v=1:a=1:音视频合在一起,输出需要视频和音频;
-c:v libx264:视频编码使用x264;
-c:a aac:音频编码acc;
-movflags +faststart :这个参数跟mp4的元数据有关,设为faststart表示会将moov移动到mdat的前面,在线播放的时候会稍微快一些。

ffmpeg -i E:/1/2.mp4 -r 15 E:/1/22-.mp4 
“-r 15” :修改视频帧率时使用,设置目标视频帧率。

ffmpeg -i E:/1/6-.mov -r 29.97 -ar 44100 -map 0:0 -map 0:1 E:/1/6.mov //作用是将文件变换帧率,同时保持原来文件流的序列号。此案例中6-.mov原来stream 0是音频流,stream 1是视频流,但是使用ffmpeg进行重新编码后(此处使用-r就会导致重新编码),ffmpeg会默认将视频流设置为stream 0,音频流设置为stream 1。要保持原来的流序列号。就需要通过-map[stream] (stream 可用 ”文件序号:流序号“ 或者 流别名 表示)来设置先后顺序,第一个map设置第一个输入文件的第一个流为 stream 0 ;第二个map设置第一个输入文件的第二个流为stream 1

-map  input_file_index:stream_number:挑选流和设置流序列号。
-ar 44100 : 设置音频的采样率为44100

ffmpeg -i E:/1/6-.mov -video_track_timescale 30K -r 29.97 -c:v libx264 -b:v 7M  E:/1/6.mov
-video_track_timescale 30K   设置tbn为30K,在新版的ffmpeg中tbc已经被抛弃了。设置tbn必须通过这个参数进行。拼接的两个视频的tbn不一致的时候,会导致合成的目标视频出现时长紊乱。
参考:
https://superuser.com/questions/1362410/what-is-fps-tbr-tbn-tbc-in-ffmpeg
https://video.stackexchange.com/questions/33134/ffmpeg-resizing-mp4-changes-the-timebase-tbn-tbc

ffmpeg -i E:/1/1.mp4  -r 25 -vf scale=848:1520 -b:v 1M -c:v hevc_nvenc E:/1/1-.mp4

-vf scale=848:1520 表示将1.MP4的视频的长宽通过伸缩的方式改为848:1520。scale=w:h。当w为-1时表示保持原来的长宽比,并将h设置为新的值;h亦然。(视频合拼后出现乱码,很有可能是因为视频的尺寸对不上
 

ffmpeg -i E:/1/1.mp4 -vf crop=‘720:1280:200:200’ E:/1/1-.mp4

-vf crop=‘720:1280:200:200’   表示将1.MP4的视频的长宽通过裁剪的方式改为720:1280。crop=‘w:h:x:y’。x和y可以不进行设置,程序会自动计算,默认居中。w和h是主要值,x和y超出范围的值会被削减为范围值。

0:逆时针旋转90度并垂直翻转,1:顺时针旋转90度,2:逆时针旋转90度,3:顺时针旋转90度后并垂直翻转

ffmpeg -i E:/1/1.mp4 -ss 2:55:10 -t 30:0 -r 24 -ac 1 -ar 44100 -video_track_timescale 20K -vf "scale=720:1280,setsar=sar=1:1" -b:v 1M -c:v hevc_nvenc E:/1/1-.mp4

  1. PAR图像纵横比:PAR=(每行像素数)/(每列像素数)=分辨率,通过scale或-s可进行设置
  2. SAR样点纵横比:SAR=(像素的宽)/(像素的高)。像素不一定都是正方形的。
  3. DAR显示纵横比:一般说的16:9和4:3指的是DAR。DAR=(每行像素数像素的宽)/(每列像素数像素的高),即DAR=PAR*SAR

-vf "scale=720:1080,setsar=sar=1:1" :设置视频幅度为720:1080 ,设置sar=1:1  
-ac 1 :设置声音为单通道,如果stereo应该设置为2通道
-ab 56K :设置声音的比特率 等价于"-b:a 56K"
-ar 44100 : 设置音频的采样率为44100

ffmpeg -i D:/1/1.mp4 -vf "split [main][tmp]; [tmp] crop=iw:ih/2:0:0, vflip [flip]; [main][flip] overlay=0:H/2" D:/1/b.mp4  将视频上半部分水平镜像到下半部分形成新的视频。

                [main]
input --> split ---------------------> overlay --> output|                             ^|[tmp]                  [flip]|+-----> crop --> vflip -------+
input就是原输入流,上图整个流程就做了这些操作,
首先使用split滤波器将input流分成两路流(main和tmp),然后分别对两路流进行处理。对于tmp流,先经过crop滤波器进行裁剪处理,再经过flip滤波器进行垂直方向上的翻转操作,输出的结果命名为flip流。再将main流和flip流输入到overlay滤波器进行合成操作。上图的input就是上面提过的buffer源滤波器,output就是上面的提过的buffersink滤波器。以上操作使用命令实现是
ffmpeg -i INPUT -vf "split [main][tmp]; [tmp] crop=iw:ih/2:0:0, vflip [flip]; [main][flip] overlay=0:H/2" OUTPUT
同一个线性链中的过滤器用逗号分隔,不同的过滤器线性链用分号分隔。
在我们的例子中,裁剪,vflip在一个线性链中,分割和叠加在另一个链中是分开的。线形链连接的点用方括号括起来的名称进行标记。
在本例中,拆分过滤器生成与标签[main]和[tmp]相关联的两个输出。
一些过滤器接受输入的参数列表:它们在过滤器名称和等号之后指定,并用冒号分隔。
描述:前景窗口(第二输入)覆盖在背景窗口(第一输入)的指定位置。
​
语法:[main_name][overlay_name]overlay[=x:y[[:rgb={0, 1}]]参数 x 和 y 是可选的,默认为 0。参数 rgb 参数也是可选的,其值为 0 或 1,默认为 0。
​
参数说明:x                   从左上角的水平坐标,默认值为 0y                   从左上角的垂直坐标,默认值为 0rgb                 值为 0 表示输入颜色空间不改变,默认为 0;值为 1 表示将输入的颜色空间设置为 RGB
​
变量说明:如下变量可用在 x 和 y 的表达式中main_w 或 W          主输入(背景窗口)宽度main_h 或 H          主输入(背景窗口)高度overlay_w 或 w       overlay 输入(前景窗口)宽度overlay_h 或 h       overlay 输入(前景窗口)高度

ffmpeg -i 1.mp4 -vf pad=2*iw 4.mp4  :将宽度扩展一倍,用黑色填充。
-vf pad=2*iw:将宽度扩展为原来的两倍,pad=w:h:x:y:violet  (violet 紫色)

ffmpeg -i 1.mp4 -vf split[a][b];[a]pad=2*iw[1];[b]hflip[2];[1][2]overlay=w:0 7.mp4
    F1: split过滤器创建两个输入文件的拷贝并标记为[a],[b]
    F2: [a]作为pad过滤器的输入,pad过滤器产生2倍宽度并输出到[1].
    F3: [b]作为hflip过滤器的输入,vflip过滤器水平翻转视频并输出到[2].
    F4: 用overlay过滤器把 [2]覆盖到[1]的旁边.

ffmpeg -i .test.mp4 -i test1.mp4 -lavfi hstack output.mp4 :将两个相同格式的视频左右拼接(对于不同格式视频的拼接需要先用vf将视频进行修正)
-lavfi hstack :左右拼接, vstack 上下拼接

ffmpeg -i input1.mp4 -i input2.mp4 -i input3.mp4 -lavfi hstack=inputs=3 output.mp4 :3个视频左右拼接
ffmpeg -i test.mp4 -vf "transpose=1" out.mp4 :顺时针旋转90° transpose=2 逆时针90°
ffmpeg -i test.mp4 -vf hflip out.mp4 :水平翻转视频画面 vflip垂直翻转

ffmpeg -i ring.mp4 -i ring_100x87.png -filter_complex overlay=W-w:H-h-56 -max_muxing_queue_size 1024 ring_logo_b.mp4  :对ring.mp4添加水印。


ffmpeg -i ring.mp4 -itsoffset 8.6 -i ring_100x87.png -filter_complex overlay=W-w:56 -max_muxing_queue_size 1024 ring_logo_delay.mp4:背景窗口播放 8.6 秒后,图标开始显示。注意 “-itsoffset 8.6” 作为第二个输入文件的输入选项,参数位置不能放错。

ffmpeg -i D:/1/a.mp4 -filter_complex "[0:v]split=3[v0][v1][v2];[v0]trim=0:10,setpts=PTS-STARTPTS[vout0];[v1]trim=10:20,setpts=PTS-STARTPTS[vout1];[v2]trim=20:30,setpts=PTS-STARTPTS[vout2];[0:a]asplit=3[a0][a1][a2];[a0]atrim=0:10,asetpts=PTS-STARTPTS[aout0];[a1]atrim=10:20,asetpts=PTS-STARTPTS[aout1];[a2]atrim=20:30,asetpts=PTS-STARTPTS[aout2]" -c:v hevc_nvenc -map [vout0] -map [aout0] D:/1/output0.mp4 -map [vout1] -map [aout1] D:/1/output1.mp4 -map [vout2] -map [aout2] D:/1/output2.mp4 -y  将一个30s的视频按时间先后拆分成三个10s的视频。ffmpeg 中的video filter 和audio filter是分开的,所以对声音和视频需要分开处理。按时间先后顺序拆分视频,最便捷的截取方式应该是 通过-ss和 -t参数进行操作

ffmpeg -f lavfi -i "aevalsrc=10:d=2" -f lavfi -i "anullsrc=duration=1" -filter_complex "[0:a][1:a]amix=inputs=2:duration=first:dropout_transition=0" output.wav:在音频之间多次插入随机静音的效果
aevalsrc=0:d=2:aevalsrc为音频滤镜,这段作用表示生成2秒钟的静音音频
anullsrc=duration=1:anullsrc为音频滤镜,这段作用为生成1秒钟的空白音频
[0:a][1:a]amix=inputs=2:duration=first:dropout_transition=0:amix为音频滤镜,这段作用表示将静音音频和空白音频混合在一起, amix作用是混合音频,音量大小等于1/n,amix混合不同时长的音频时,会出现音频音量前后不一致, ffmpeg使用amix混合多个音频时音量变小或音量不一致问题-CSDN博客 
FFmpeg音频滤镜(12) - 简书 

将图片制作成一个小视频,然后添加到长视频开头:

(1)ffmpeg -f lavfi -t 0.1 -i anullsrc=r=44100:cl=mono -c:a aac -ab 69K D:/1/test.aac -y :制作0.1秒的静音音频流文件,采样率ar、编码器c:a、通道数cl、码率b:a 要与目标文件一致。
(2)ffmpeg -t 0.1 -f image2 -loop 1 -i D:/1/1.jpeg -r 22.37 -video_track_timescale 17152 -vf "setsar=sar=1:1" -b:v 1M -c:v hevc_nvenc D:/1/11-.mp4 制作0.1秒长的视频流文件,分辨率(不一样的时候可以使用vf 中的scale|crop|pad等进行操作,保证输出的视频流文件与目标的一致)、帧率-r、tbn、sar 与目标文件的视频流保持一致。
(3)ffmpeg -i D:/1/11-.mp4 -i D:/1/test.aac -map 0:0 -map 1:0 D:/1/1-.mp4:将音频流和视频流合并,-map 的位置极为重要,他设置了视频流和音频流的下标,这里-map 0:0 表示第一个输入文件的第一个流作为输出文件的第一个流,-map 1:0 表示第二个输入文件的第一个流,必须保证与目标流下标对应。就此制作完成
(4)ffmpeg -f concat -i D:/1/videos.txt -c copy D:/1/a.mp4 ,拼接两个文件。

vf中的concat :1.mkv 2.mkv 3.mkv每个视频都有3个流,分别是v[0] a[1] a[2]。使用vf将三个视频拼接成一个视频

ffmpeg -i 1.mkv -i 2.mkv -i 3.mkv -filter_complex \'[0:0] [0:1] [0:2] [1:0] [1:1] [1:2] [2:0] [2:1] [2:2]concat=n=3:v=1:a=2 [v] [a1] [a2]' \-map '[v]' -map '[a1]' -map '[a2]' output.mkv
concat=n=3:v=1:a=2 ,表示目标文件和输入文件的流有3个,v有一个,a有两个。对part1.mp4和part2.mp4的视频进行缩放后拼接成一个文件,操作如下:
movie=part1.mp4, scale=512:288 [v1] ; amovie=part1.mp4 [a1] ;
movie=part2.mp4, scale=512:288 [v2] ; amovie=part2.mp4 [a2] ;
[v1] [v2] concat [outv] ; [a1] [a2] concat=v=0:a=1 [outa]

其他参数

ffmpeg -i E:/1/1.mp4 -metadata title=xxx -metadata copyright=xxx.com -metadata comment=xxx.com -t 1:0 -b:v 1M -c:v hevc_nvenc E:/1/2-.mp4 设置title copyright comment等参数。

GOP

ffprobe -i D:/1/a.mp4 -select_streams v:0 -show_frames >D:/1/h1.txt :查看gop(计算两个I帧pict_type=I的时间间隔,具体视频流中,每个gop的时间长度有所差异,gop在编码是只是一个参考值)
ffmpeg -i D:/1/a.mp4 -f segment -segment_time 2 -reset_timestamps true -avoid_negative_ts 1 -c copy D:/1/out%d.mp4 -y  :将D:/1/a.mp4的内容按不小于2秒以gop为单位进行裁剪。不会截断gop。
segment详细参数参考ffmpeg手册中的“(stream) segment muxer AVOptions”段。

ffmpeg -t 3 -i D:/1/a.mp4 -avoid_negative_ts 1 -c copy D:/1/outtest.mp4 :截取3秒,会截断gop。

如何用ffmpeg准确剪切视频,对初始gop进行重编码(最方便的还是对视频重编码):Can you losslessly ediit H264 at the GOP level? -Stack Exchange 
回答1

 回答2:


设备:

ffmpeg -devices 查询当前的设备有哪些,windows下建议使用dshow,mac下建议使用foundation

 ffmpeg -f dshow -list_devices true -i "" 该命令可以查询设备列表(空引号表示列举,也可以用单词 dummy 来代替)  (-i 指定设备 mac 下 1表示桌面(命令查询mac下的索引号))

ffmpeg -f dshow -list_options true -i video="USB  Live  Camera"  :该命令查看设备“USB Live Camera”支持的格式 ​​​​​​。可以看到该设备有pin 0 和pin 1,两者支持的格式不一样,pin 1中支持h264。ffplay -f dshow -vcodec h264 -video_pin_name 1 -framerate 30 -video_size 1920*1080 -x 640 -y 480 -i video="USB  Live  Camera" -f dshow -i audio="麦克风 (USB  Live  Camera   audio  Devi)"  :捕捉设备"USB  Live  Camera" pin 1中的h264编码分辨率为1920*1080,帧率为30帧的格式的画面。并显示成640*480画幅的画面,并采集"麦克风 (USB  Live  Camera   audio  Devi)"的声音。
ffplay -f dshow -vcodec mjpeg  -framerate 30 -video_size 1920*1080 -x 640 -y 480 -i video="USB  Live  Camera":捕捉设备"USB  Live  Camera" pin 0(默认pin值)中的h264编码分辨率为1920*1080、帧率为30帧的格式的画面。并缩放显示成640*480画幅的画面。
ffplay -f gdigrab -offset_x 10 -offset_y 20  -video_size 640:480 -i desktop :通过gdigrab捕捉桌面区域。
-offset_x -offset_y 用于设置捕获(截取)的画面的偏移,-video_size是设置捕获(截取)画面的长宽。这两个参数用于控制捕获行为。
ffplay -f gdigrab -i desktop -x 640 -y 480 :通过gdigrab捕捉桌面,并缩放成640*480来显示 -x -y 设置输出显示的画幅
ffplay -f gdigrab -i desktop -vf "scale=640:480" :通过gdigrab捕捉桌面,并缩放成640*480来显示
ffmpeg -f gdigrab -framerate 6 -i title=tools out1.mp4 :使用gdigrab采集窗口名字为tools 的窗口的画面。
ffplay -f vfwcap -i 0 :捕捉设备编号为0 的画面采集设备的画面。
ffmpeg -t 5 -f dshow -vcodec mjpeg  -framerate 30 -video_size 1920*1080 -i video="USB  Live  Camera" -s 640x480 -y E:/video/test.mp4 : 捕获相机画面缩放成640*480的画面并保存到文件中,时长为5s。
-s 是ffmpeg命令中才有的参数,用于设置编码输出的分辨率。
ffmpeg -i input.mp4 -an -c:v rawvideo -pix_fmt 420p out.yuv :将imput.mp4 转换成YUV420p格式的文件out.yuv,-c:v rawvideo表示输出视频无编码,
ffplay -autoexit -pix_fmt yuv420p -s 608x368 out.yuv :播放yuv格式文件。-s指定输入画面的长宽,在这里是必须的参数
-autoexit :文件播放完后自动退出播放界面
ffplay -autoexit -pix_fmt yuv420p -s 608x368 -vf extractplanes = 'y' out.yuv :提取出y分量播放
ffmpeg -i input.mp4 -filter_complex  'extractplanes= y+u+v[y][u][v] ' -map '[y]' y.yuv -map '[u]' u.yuv -map '[v]' v.yuv :从mp4文件中提取出y u v 分量的文件。
ffplay -autoexit -pix_fmt gray -s 608x368  y.yuv :播放y分量的文件
ffplay -autoexit -pix_fmt gray -s 304x184  u.yuv :播放u分量的文件
ffmpeg -i out.mp4 -vn -ar 44100 ac 2 -f s16le out.pcm:提取音频原数据
-f s16le:设置抽取出的音频pcm数据的格式,s16le s表示short类型,16位,packed格式,le(little end) 表示小端模式。f32be 表示float类型32位大端模式(big end)  

详细的pcm情况可以查阅:可以在 Microsoft 365 上播放的视频格式 - Microsoft 支持 
FFmpeg PCM数据存储:Packed与Planar的区别及采样格式解析-CSDN博客 
ffplay -autoexit -ar 44100 -ac 2 -f s16le out.pcm:播放音频原数据
ffmpeg -i test.jpg -s 640x480 -pix_fmt yuv420p test.yuv :jpg格式图片转yuv格式
ffmpeg -i test.mp4 -ss 10 -t 2 -r 10 out.gif :视频转gif。截取视频中前两秒的视频转为gif,并将帧率改为10fps -r修改帧率。
ffmpeg -i 1.mp4 -ss 100 -to 1000 -vf fps=0.01 pic/output_%04d.png -y :从1.mp4中按100秒1帧的速度从100秒开始到1000秒时间段内的视频片段截取图片。并放到当前已经创建好的文件夹pic中,图片名字为output_0001.png这样的形式,数字逐个累加。
ffmpeg -i 1.mp4 -ss 100 -frames 10 -vf fps=0.01 pic/output_%04d.png -y:从视频第100s开始按100秒的间隔截取10帧图片
ffmpeg -i 1.mp4 -threads 1 -ss 100 -t 100 -r 0.1  E:/video/1/output_%04d.png -y :从视频第100s开始的100s的片段中截取图片,10s取一帧。
-threads 1 表示使用一个线程处理这个事情(修改数量效率几乎没有提升)。
ffmpeg -i test.mp4 -ss 10 -t 4 -r 1 -f image2 image-%3.jpeg:从视频中提取jpeg图片。
ffmpeg -framerate 3 -i 1/output_%04d.png -vf "scale=320:-1:flags=lanczos" 1/output.gif -y 
-framerate 3:设置GIF的帧率为3帧每秒。
-i frame%d.png:指定输入文件的名称模式,%d会被ffmpeg替换成实际的数字。
-vf "scale=320:-1:flags=lanczos":使用视频滤镜(-vf)来设置GIF的宽度为320像素,高度按比例自动调整,并使用lanczos算法进行缩放。
ffmpeg -i 1/1.png -vf "scale=128:-1" 1/2.png:对图片进行缩放。 
ffplay -autoexit -loop 3 1/output.gif:循环3次播放gif图片,loop为-1时表示一直循环播放
ffmpeg -i 1/1.mp4 -vn -c:a libfdk_aac -ar 44100 -channels 2 -profile:a aac_he_v2 1/out.aac :单独从1.mp4中提取音频,并采用profile aac_he_v2进行编码。aac_he_v2压缩能比aac和aac_he_v1同质量的情况下保持更高的压缩率。
ffmpeg -i input.mp4 -aframes 100 output.aac :输出 100 帧音频
ffmpeg -i input.mp4 -vframes 100 -c copy output.mp4:输出 100 帧视频,包含了声音
ffmpeg -i input.mp4 -frames 100 -vn -c:a copy output.mp3:输出 100 帧音频
-aframes 参数用于设置 要输出的 音频帧 帧数
ffmpeg -f dshow -i audio="麦克风 (USB  Live  Camera   audio  Devi)" -t 10 -af "asetpts=N/SR/TB" E:/video/out.pcm -y :从麦克风中采集10s的音频,并重置音频的时间戳。
ffmpeg -f dshow -i audio="麦克风 (USB  Live  Camera   audio  Devi)" -t 10 -af "asetpts=PTS-STARTPTS" E:/video/out.pcm -y:与上面一样

-vsync 1:表示输入视频同步   -async 1:表示输入音频同步
-b:v 200k -maxrate 250k -bufsize 400k:表示输出视频码率200k,最大码率250k,缓存大小400k
-coder 1:表示使用cabac进行熵编码
-refs 3 -bf 5:表示编码时用到的参考帧数量为3帧,b帧数量最大为5帧
-flags +loop -deblock -1:-1 :表示使用去块化的滤波器,后面是它的参数
-partitions i4x4+i8x8+p8x8+b8x8:-partitions设置宏块分析,可以包含i4x4、i8x8、p8x8、b8x8,
 -me_method umh:设置运动估算算法,umh表示不均衡的六边形算法
-g 60 keyint_min 30:设置gop为60 ,最小gop为30
-qmin 0 -qmax 69 -qdiff 2:设置量化器参数,-qdiff设置q p step 设置设置的是2

ffplay -f dshow -i video="USB  Live  Camera" -vf "drawtext=text='%{pts\:hms}':x=10:y=10:fontsize=40:fontcolor=red"  捕获摄像头视频并打上时间

ffmpeg -re -i input.mp4 -c copy -f rtsp rtsp://127.0.0.1:8554/stream :用rtsp协议推流,采用udp传输
ffmpeg -re -i input.mp4 -c copy -rtsp_transport tcp -f rtsp rtsp://127.0.0.1:8554/stream :用rtsp协议推流,采用tcp传输
ffmpeg -re -stream_loop -1 -i 'input.mp4' -c:v libx264 -preset slow -tune film  -b:v 2000k -maxrate 2500k -bufsize 4000k -g 60 -c:a aac -b:a 128k -f flv -rtmp_live live -rtmp_keepalive 10  'rtmp://server-address/stream-name' 将视频进行推流,
-re:用于以原始速度读取输入文件(通常是视频或音频文件)。这个参数特别在模拟实时流媒体传输或实时编码转换时有用。
-rtmp_live live :指定为直播流;
-rtmp_keepalive 10:keepalive功能避免连接中断,表示每10秒发送一个心跳包
-stream_loop -1选项可以指定循环读取视频源的次数,-1为无限循环
-preset :是h264的一个预设选项,可用于设置编码速度和质量的平衡,控制FFmpeg的编码器。
-tune :是h264的一个预选项,主要配合视频类型和视觉优化的参数,或特别的情况。如果视频的内容符合其中一个可用的调整值又或者有其中需要,则可以使用此选项,否则建议不使用(如tune grain是为高比特率的编码而设计的)
【x264】x264编码器参数配置-CSDN博客 
x264编码参数详解与最佳实践-CSDN博客

通过preset参数,我们可以非常方便地设置输出视频的速度、质量等内容,达到我们需要的效果。
-preset参数的取值范围依据编码器而不同。这里我们以视频编码器x264为例,介绍几个比较常用的-preset参数:-preset ultrafast :编码速度非常快,但输出视频质量不高
-preset superfast :编码速度非常快,但输出视频质量比ultrafast略微高一些
-preset veryfast :编码速度比较快,输出视频质量较好
-preset faster :编码速度比较快,输出视频质量比veryfast略微差一些
-preset fast :编码速度适中,输出视频质量较好
-preset medium :编码速度适中,输出视频质量非常好,是默认值
-preset slow :编码速度较慢,但输出视频质量比medium更好
-preset slower :编码速度比slow略微慢一些,但输出视频质量更好
-preset veryslow :编码速度最慢,但输出视频质量最好-preset参数的其他用途
-preset参数不仅可以用于控制编码速度和质量,还可以用于优化视频和音频的编码。例如,我们可以使用-preset tune选项来进行编码优化,以适应不同的情况。可以通过x264的–tune参数或ffmpeg的-x264-params参数来指定。下面是一份x264的-tune选项列表:film :该选项用于处理电影或其他传统镜头的视频,适用于视频的动态图像较少。缺省设置为无。
animation :该选项用于处理动画或卡通片,适用于视频的动态图像较多。缺省设置为no。
grain :该选项用于处理具有高噪声的视频。缺省设置为no。
stillimage :该选项适用于处理静止图像。缺省设置为no。
psnr :该选项用于计算视频的PSNR值。缺省设置为no。
ssim :该选项用于计算视频的SSIM值。缺省设置为no。
fastdecode: 可以快速解码的参数;
zerolatency:零延迟,牺牲视频质量减少延迟,比如视频会议原文链接:https://blog.csdn.net/lixiaowu119/article/details/136705644

-bufsize:设置缓存大小,让推流过程更平滑。
 -f flv :将mp4格式转换成flv格式,因为flv存放格式与rtmp的包格式是极为相近的,只是使用的包头不同

x264编码参数详细解释:
X264 Settings - MeWiki :http://www.chaneru.com/Roku/HLS/X264_Settings.htm 
介绍类似CABAC变成coder的详细映射关系:https://sites.google.com/site/linuxencoding/x264-ffmpeg-mapping

ffmpeg常用命令 - 风雪逆旅 - 博客园

FFmpeg 常用命令_ffmpeg改变视频帧率_wk灬丨的博客-CSDN博客

FFmpeg个人使用指南_ffmpeg force_style_jerrylin07的博客-CSDN博客

FFMPEG命令入门到提高,一篇文章就够了 - 知乎

FFmpeg Filter过滤器_ffmpeg configure_filtergraph_生椰_李点点的博客-CSDN博客

使用ffmpeg将图片拼接为视频--技术员007 ଘ(੭ˊᵕˋ)੭

ffmpeg 基本命令介绍 - 简书 
FFmpeg+SDL播放器开发实践:解析、解码、渲染全流程详解 - 知乎

FFmpeg —— 屏幕录像和录音并推流(命令行的方式) - 知乎

相关文章:

ffmpeg 常用命令

更详细请参考ffmpeg手册,下载ffmpegrelease版后在doc中就有,主页面。video filter 参考ffmpeg-filters.html -version -formats -demuxers -protocols -muxers -filters -devices —pix_fmts -codecs -sample_fmts -decoders -layouts -encoders -colors…...

c#集成itext7导出pdf,包含表格

在Nuget解决方案中搜索itext7,进行安装 同时还要安装 itext7.bouncy-castle-adapter。 否则 PdfWriter writer new PdfWriter(pdfOutputPath);执行时会报错unknown PdfException,然后生成一个空白的pdf,且显示已损坏。 捕获异常发现 ex.In…...

STM32-WWDG/IWDG看门狗

WWDG/IWDG一旦开启不能关闭,可通过选项字节在上电时启动硬件看门狗,看门狗计数只能写入不能读取。看门狗启用时,T6bit必须置1,防止立即重置。 一、原理 独立看门狗-超时复位 窗口看门狗-喂狗(重置计数器,…...

后台管理系统引导功能的实现

引导是软件中经常见到的一个功能,无论是在后台项目还是前台或者是移动端项目中。 那么对于引导页而言,它是如何实现的呢?通常情况下引导页是通过 聚焦 的方式,高亮一块视图,然后通过文字解释的形式来告知用户该功能的作…...

Flink如何设置合理的并行度

一个Flink程序由多个Operator组成(source、transformation和 sink)。 一个Operator由多个并行的Task(线程)来执行, 一个Operator的并行Task(线程)数目就被称为该Operator(任务)的并行度(Parallel)。即并行度就是相对于Operator来说的。 合理设置并行度可以有效提高Flink作业…...

【JMeter】单接口

1. HTTPS接口 前置准备: ​​​​​​​下载被测网站的证书在cmd利用java工具keytool.exe重新生成store证书 先进入存放该程序的盘 使用命令: keytool -import -alias "xxxx.store" -file "D:\xxx.cer" -keystore xx.store 根据提示信任证书 在JMeter菜…...

安科瑞Acrel-1000DP分布式光伏监控系统在浙江安吉成3234.465kWp分布式光伏发电项目中的应用

摘 要:分布式光伏发电站是指将光伏发电组件安装在用户的建筑物屋顶、空地或其他适合的场地上,利用太阳能进行发电的一种可再生能源利用方式,与传统的大型集中式光伏电站相比,分布式光伏发电具有更灵活的布局、更低的建设成本和更高…...

电子应用设计方案87:智能AI收纳箱系统设计

智能 AI 收纳箱系统设计 一、引言 智能 AI 收纳箱系统旨在为用户提供更高效、便捷和智能的物品收纳与管理解决方案,通过融合人工智能技术和创新设计,提升用户的生活品质和物品整理效率。 二、系统概述 1. 系统目标 - 实现物品的自动分类和整理&#xf…...

C++泛型编程:多参数函数模版、动态数组类

在多参数函数模版中,有以下几点: 第一点是函数模版支持多个类型参数 第二点是一旦有类型不能推导,就会导致编译失败 第三点是返回值类型无法作为推导依据 其中第二点和第三点,在下面代码中有体现,首先是第三点&…...

点亮一个esp32 的led

最近入了一个ESP32 兄弟们,这玩意还可以,买来肯定是给它点亮啊对吧 我就是点灯侠🎇 😭千万不要不接天线啊,不然你会一直找不到你的wifi 1.点灯第一步你得有IDE Arduino 就是这个绿东西 可是怎么下载安装呢&#xff…...

【计算机视觉】单目深度估计模型-Depth Anything-V2

概述 本篇将简单介绍Depth Anything V2单目深度估计模型,该模型旨在解决现有的深度估计模型在处理复杂场景、透明或反射物体时的性能限制。与前一代模型相比,V2版本通过采用合成图像训练、增加教师模型容量,并利用大规模伪标签现实数据进行学…...

新年感悟:2025年1月7日高铁随想

2025年1月7日,乘坐在从珠海去广州南的C7676高铁上,突然悟明白两个事情。 首先,不管学习任何东西,总结是一个非常关键的经验。以前,总是幻想着能找到一本书,或者一个特别优秀的老师,仅仅通过看看…...

C++ 入门第25天:线程池(Thread Pool)基础

往期回顾: C 学习第22天:智能指针与异常处理-CSDN博客 C 入门第23天:Lambda 表达式与标准库算法入门-CSDN博客 C 入门第24天:C11 多线程基础-CSDN博客 C 入门第25天:线程池(Thread Pool)基础 前…...

嵌入式驱动开发详解10(MISC杂项实现)

文章目录 前言MISC设备驱动简介重要结构体API函数MISC实现框架后续参考文献 前言 MISC 驱动也叫做杂项驱动,也就是当我们板子上的某 些外设无法进行分类的时候就可以使用 MISC 驱动。MISC 驱动其实就是最简单的字符设备驱 动,通常嵌套在 platform 总线驱…...

CSS语言的编程范式

CSS语言的编程范式 前言 随着互联网的快速发展,前端开发逐渐演变为一个复杂而多元化的领域。作为前端开发的重要组成部分,CSS(层叠样式表)在网页设计和用户体验中扮演着至关重要的角色。CSS不仅仅是一种样式表语言,更…...

游戏引擎学习第77天

仓库: https://gitee.com/mrxiao_com/2d_game 回顾昨天的 bug 今天我们继续开发进度,进行调试昨天代码的问题,主要是关于如何跟踪玩家和敌人在世界中的高度位置。虽然我们做的是一款 2D 游戏,但我们希望能够处理多层的房间,玩家…...

Python编程实例-机器学习中的Hinge Loss编程实现

机器学习中的Hinge Loss编程实现 文章目录 机器学习中的Hinge Loss编程实现1、机器学习中的损失函数是什么?2、什么是 Hinge Loss?3、Hinge Loss如何工作?4、Hinge Loss的优缺点5、Python语言实现6、总结Hinge Loss(铰链损失)在分类任务中至关重要,广泛应用于支持向量机 …...

算法练习----2025/1/7

题目 计算素数函数f(N)代表素数的个数小于等于N例如 f(17)7 , 因为前7个素数为 2,3,5,7,11,13,17思路 1、首先创建一个布尔类型的数组(Python 中用列表模拟)来标记每个数是否为素…...

【C++】穿越编程岁月,细品C++进化轨迹,深化入门基石(续章)——揭秘函数缺省参数的魅力、函数重载的艺术、引用的奥秘与内联函数的效率

文章目录 一、函数缺省参数二、函数重载三、引用1.引用的概念和定义2.引用的特性3.引用的使用4.const引用5.指针和引用的关系 四、inline内联函数和nullptr1.inline2.nullptr 一、函数缺省参数 缺省参数其实就是默认参数,它是声明或定义函数时为函数的参数指定⼀个缺…...

1/7 Spring三级缓存

首先我们来spring创建bean首先通过反射创建bean原始对象,然后通过 填充里面的属性,然后如果有AOP的话,那么就会创建这个代理对象,最后将代理对象传入这个单例池中 如何解决循环依赖问题的 比如A依赖B,B依赖A 如果在单例池没有找…...

【RK3568笔记】Android修改开机动画

概述 Android 的开机动画是由一系列连续的 PNG 图片作为帧组成的动画形式,不是一张 GIF 图片。将各帧 PNG 图片以压缩方式进行保存(压缩方式要求是存储压缩),并将保存的文件名命名为 bootanimation.zip,这个 bootanim…...

牛客网刷题 ——C语言初阶(5操作符)——JZ15 二进制中1的个数

1.题目描述 题目OJ链接 描述 输入一个整数 n ,输出该数32位二进制表示中1的个数。其中负数用补码表示。 2.思路 求2进制中1的个数,可以转换为求每一位,1的个数,1&1还是1 所以判断如果该数值&1为真,我们就co…...

Lua语言中常用的字符串操作函数

string.sub(s, i, j) 功能: 截取字符串 s 中从位置 i 到位置 j 的子字符串。 local s "Hello, Lua!" print(string.sub(s, 1, 5)) -- 输出 "Hello" print(string.sub(s, 8, 11)) -- 输出 "Lua!" string.len(s) 功能:将字符串长度…...

SpringBoot 2.6 集成es 7.17

引言 在现代应用开发中,Elasticsearch作为一个强大的搜索引擎和分析引擎,已经成为许多项目不可或缺的一部分。Spring Boot作为Java生态中最受欢迎的微服务框架之一,其对Elasticsearch的支持自然也是开发者关注的焦点。本文将详细介绍如何在S…...

Elasticsearch:搜索相关性

这里写目录标题 一、相关性的概述二、自定义评分策略1、TF-IDF算法2、BM25算法 三、自定义评分策略1、Index Boost:在索引层面修改相关性2、boosting:修改文档相关性3、negative_boost:降低相关性4、function_score:自定义评分5、…...

nlp培训重点-2

1. 贝叶斯公式 import math import jieba import re import os import json from collections import defaultdictjieba.initialize()""" 贝叶斯分类实践P(A|B) (P(A) * P(B|A)) / P(B) 事件A:文本属于类别x1。文本属于类别x的概率,记做…...

Python判断、循环练习

01 02 03...

基于ROS先验地图的机器人自主定位与导航SLAM

2021年学习,当时参加科大讯飞的智能车大赛, 【语音交互启动-teb算法路径规划A*算法自动避障路径最短优化yolo5目标检测视觉结果判断分类终点指定点位自动泊车语音播报。】 【讯飞学院】http://www.iflyros.com/home/ 一、全局路径规划中的地图 栅格地图&…...

计算机网络与服务器

目录 架构体系及相关知识 三层架构: 四层架构: 常见的应用的模式: OSI模型 分层 数据链路层 TCP/IP模型 TCP和UDP都是传输层的协议 TCP三次握手、四次次分手 URL&HTTP协议详解 网址URL 结构化 报文行 报文头 空行 报文体…...

IP查询于访问控制保护你我安全

IP地址查询 查询方法: 命令行工具: ①在Windows系统中,我们可以使用命令提示符(WINR)查询IP地址,在弹窗中输入“ipconfig”命令查看本地网络适配器的IP地址等配置信息; ②在Linux系统中&…...

在 ASP.NET CORE 中上传、下载文件

创建 Web API 来提供跨客户端和服务器的文件上传和下载是常有的事。本文将介绍如何通过 ASP.NET CORE 来实现。 首先在 Visual Studio 中创建空的 Web API 项目,然后选择目标框架 .Net Core 3.1。 创建名为 FileController 的控制器,提供操作文件的接口…...

ETCD未授权测试

一、测试环境搭建 首先拉取etcd镜像 docker pull quay.io/coreos/etcd:v3.3.1 # 查看镜像 docker images创建自定义网络 docker network create --driver bridge --subnet172.16.1.0/16 --gateway172.16.1.1 mynet # 查看网络 docker network ls创建etcd节点 节点1: docke…...

ffmpeg将mp4等文件转mp3

安装ffmpeg 目录 安装ffmpeg macOS Windows 实现方法 Base Golang macOS 在macOS上,你可以使用Homebrew来安装FFmpeg,这是最简单和推荐的方法。以下是具体步骤: ‌安装Homebrew‌(如果尚未安装): 打开终端,执行以下命令来安装Homebrew: /bin/bash -c "$(c…...

python学习笔记—15—数据容器之列表

1. 数据容器 列表(list)、元组(tuple)、字符串(str)、集合(set)、字典(dict) 2. 列表 (1) 定义 tmp_list ["super", "carry", "doinb"] print(f"tmp_list {tmp_list}, tmp_list type is {type(tmp_list)}") tmp_list1 ["doi…...

基于MATLAB的汽车热管理模型构建

一、引言 汽车热管理系统对汽车性能、部件寿命及驾乘体验至关重要。它能确保发动机、电池等关键部件在适宜温度工作。MATLAB 功能强大,为构建高精度热管理模型提供有效途径,助力优化系统设计与控制策略。 二、汽车热管理系统构成 2.1 发动机冷却系统&…...

MySQL的主从复制

MySQL 主从复制详解 MySQL 的主从复制是一种用来实现数据同步的机制,可以将一个 MySQL 实例的数据同步到一个或多个从库(Slave)实例中。它广泛应用于数据备份、高可用架构、读写分离、负载均衡等场景。 1. 主从复制的基本概念 主库&#xff…...

playwright 录制

一、新建项目TestProject3 二、准备swagger 三、开始录制 打开PowerShell 7 (x64) cd D:\xxx\xxx\VS2022Projects\TestProject3\TestProject3\bin\Debug\net8.0 pwsh playwright.ps1 codegen --targetcsharp -b chromium localhost:5252/swagger/index.html #支持的语言 java…...

Azure主机windows2008就地升级十步

Azure上云主机的windows2008系统需要进行就地升级。 按着微软的升级路径:win2008-->win2012-->win2016-->win2022 第一步:创建快照备份,防止升级失败第二步:升级托管磁盘,在VM管理的地方将磁盘升级成托管磁盘…...

MySQL 主从复制 的原理、配置和如何实现 主从灾备

1. MySQL 主从复制原理与工作流程 MySQL 的主从复制本质上是一个 基于事件的日志传输系统。在这个系统中,所有对数据的修改(如 INSERT、UPDATE 和 DELETE)会在 主数据库 上记录到 二进制日志(binlog),然后…...

本地多卡(3090)部署通义千问Qwen-72B大模型提速实践:从龟速到够用

最近在做文本风格转化,涉及千万token级别的文本。想用大模型转写,在线的模型一来涉及数据隐私,二来又不想先垫钱再找报销。本地的7-9B小模型又感觉效果有限,正好实验室给俺配了4卡3090的机子,反正也就是做个推理&#…...

高级数据库系统 复习提纲

第一章 数据库技术的回顾与发展 简述三代数据库的发展历史及其对应特点: 新型数据库在“数据模型”上的创新: 简述数据库和什么相关技术结合,产生了什么新型数据库? 1. 数据库和并行处理技术结合,产生“并行数据库”…...

Python编程实例-特征向量与特征值编程实现

特征向量与特征值编程实现 文章目录 特征向量与特征值编程实现1、什么是特征向量2、特征向量背后的直觉3、为什么特征向量很重要?4、如何计算特征向量?4、特征向量Python实现5、可视化特征向量6、总结线性代数是许多高级数学概念的基石,广泛应用于数据科学、机器学习、计算机…...

十年后LabVIEW编程知识是否会过时?

在考虑LabVIEW编程知识在未来十年内的有效性时,我们可以从几个角度进行分析: ​ 1. 技术发展与软件更新 随着技术的快速发展,许多编程工具和平台不断更新和改进,LabVIEW也不例外。十年后,可能会有新的编程语言或平台…...

第6章——HTTP首部

第六章——HTTP首部 HTTP报文结构 ​ 都必有报文首部 HTTP请求报文 HTTP响应报文 HTTP首部字段 ###传递重要信息 首部字段结构 ​ 首部字段名:字段值(,字段值,字段值) 首部字段类型 ​ 通用首部字段 请求首部字…...

Java多线程

一、线程的简介: 1.普通方法调用和多线程: 2.程序、进程和线程: 在操作系统中运行的程序就是进程,一个进程可以有多个线程 程序是指令和数据的有序集合,其本身没有任何运行的含义,是一个静态的概念; 进程则是执行程序的一次执…...

C++ 复习总结记录四

C 复习总结记录四 主要内容 1、构造函数其它要点 2、static 成员 3、友元 4、内部类 5、匿名对象 6、拷贝对象时编译器的优化 一 构造函数其它要点 1.1 构造函数体赋值 创建对象时,编译器调用构造函数,给对象中各个成员变量一个合适初始值 cl…...

Oracle Dataguard 需要配置的参数详解

Oracle Dataguard 需要配置的参数详解 目录 Oracle Dataguard 需要配置的参数详解一、数据库名:DB_NAME二、数据库唯一名:DB_UNIQUE_NAME三、LOG_ARCHIVE_CONFIG四、LOG_ARCHIVE_DEST_1五、LOG_ARCHIVE_DEST_2六、LOG_ARCHIVE_DEST_3七、LOG_ARCHIVE_DES…...

Java 内部类与异常类

目录 1.Java 内部类 2.Java 匿名类 1. 匿名类继承一个父类 2. 匿名类实现一个接口 3.Java 异常类 4.Java 异常的分类 1. Throwable类 2. Error类 3. Exception类 5.Java 常见的异常 1. NullPointerException(空指针异常) 2. ClassCastException(类转换异常) 3. In…...

Matlab仿真径向受压圆盘光弹图像

Matlab仿真径向受压圆盘光弹图像-十步相移法 主要参数 % 定义圆盘参数 R 15; % 圆盘半径,单位:mm h 5; % 圆盘厚度,单位:mm P 300; % 径向受压载荷大小,单位&#xff…...

补偿电阻对ota零极点的影响

本文内容主要是关于补偿电阻对零极点产生的影响。 1.极点分析 该补偿电阻并不会影响在输出端的主极点,受影响的主要是镜像极点。 这里我们可以先单看电流镜部分,这个补偿电阻的作用在于将极点推向原来的两倍,从而达到增加带宽的目的[1]。 …...