FFmpeg常见命令行(一):FFmpeg工具使用基础

前言

在Android音视频开发中,网上知识点过于零碎,自学起来难度非常大,不过音视频大牛Jhuster提出了《Android 音视频从入门到提高 - 任务列表》。本文是Android音视频任务列表的其中一个, 对应的要学习的内容是:FFmpeg常见命令行(一):FFmpeg工具使用基础


音视频任务列表

音视频任务列表: 点击此处跳转查看.


目录

在这里插入图片描述


1.1 FFmpeg简介

1.1.1 FFmpeg的定义

FFmpeg是一个开源的跨平台多媒体处理工具集,它可以用于处理音频、视频和其他多媒体数据。FFmpeg提供了一组功能强大的命令行工具,用于音频和视频的编解码、转换、处理、流媒体传输等任务。

FFmpeg支持多种音频和视频格式,包括常见的MP3、AAC、FLAC、H.264、H.265等。它可以进行音频和视频的编码(将数据压缩为特定格式)、解码(将数据解压为原始格式)、转码(在不同格式之间进行转换)、剪辑、合并、提取音频或视频流、添加字幕、调整音量、应用滤镜效果等操作。

FFmpeg是一个非常灵活和强大的工具集,广泛应用于多媒体处理领域。它被许多软件、平台和服务所使用,包括视频编辑软件、流媒体服务器、音频播放器、视频转码服务等。由于其开源的特性,FFmpeg也得到了广泛的社区支持和贡献,使其不断发展和改进。


1.1.2 FFmpeg的基本组成

FFmpeg由多个核心组件组成,它们共同构成了这个多媒体处理工具集的基础。以下是FFmpeg的基本组成:

  1. libavcodec:这是FFmpeg的核心编解码库,提供了音频和视频编解码器的实现。它支持各种格式的音频和视频编码,包括常见的MP3、AAC、FLAC、H.264、H.265等。libavcodec负责将音频和视频数据从一种格式转换为另一种格式。
  2. libavformat:这个组件处理音频和视频的容器格式(例如MP4、AVI、MKV等)。它能够解析和封装多种容器格式,使得FFmpeg可以读取和写入不同的音频和视频文件。
  3. libavfilter:这是FFmpeg的滤镜库,用于实现各种音频和视频的滤镜效果,如调整亮度、对比度、色彩平衡,添加水印,去噪等。libavfilter允许用户在处理音频和视频时应用各种视觉和音频效果。
  4. libavutil:这是一个辅助库,提供了一些常用的工具函数,用于处理音频、视频和其他多媒体数据。它包含了数据结构、数学运算、时间管理、内存管理等功能,为其他组件提供了基础支持。
  5. libswscale:这个组件用于图像的缩放和颜色空间转换。它能够将不同分辨率和不同颜色空间的图像进行转换,以适应不同的显示设备或编码要求。

除了上述核心组件外,FFmpeg还包含许多其他的辅助工具和库,用于处理音频、视频和其他多媒体任务。例如,命令行工具FFmpegffprobe是常用的工具,用于执行音视频转码、分析多媒体文件等操作。

总之,FFmpeg的基本组成是由编解码库、容器处理库、滤镜库、工具库等多个组件构成,它们协同工作,提供了丰富的功能和灵活性,使得FFmpeg成为一个强大的多媒体处理工具集。


1.1.3 FFmpeg的编解码工具FFmpeg

FFmpeg的编解码工具命令行是FFmpeg中最常用和最重要的工具之一,用于执行音频和视频的编解码、转换、处理等任务。

使用FFmpeg工具,你可以通过指定输入文件和输出文件的参数,对音频和视频进行各种操作。以下是一些常见的用法示例:

  1. 音视频转码:将一个音频或视频文件转换为不同的编码格式。
ffmpeg -i input.mp4 output.avi

上述命令将输入文件input.mp4转码为输出文件output.avi

  1. 剪辑和裁剪:截取音频或视频的一部分,或者裁剪音频或视频的尺寸。
ffmpeg -i input.mp4 -ss 00:00:10 -t 00:00:30 -c copy output.mp4

上述命令从input.mp4文件中提取从第10秒开始持续30秒的内容,并将其保存为output.mp4文件。

  1. 添加水印:在视频上添加文字或图像水印。
ffmpeg -i input.mp4 -i watermark.png -filter_complex "overlay=W-w-10:H-h-10" output.mp4

上述命令将名为watermark.png的水印添加到input.mp4视频的右下角,并生成output.mp4文件。

  1. 调整音频和视频参数:调整音频和视频的比特率、帧率、分辨率等参数。
ffmpeg -i input.mp4 -b:v 1M -r 30 -s 1280x720 output.mp4

上述命令将输入文件input.mp4的视频比特率设置为1 Mbps,帧率设置为30帧/秒,分辨率设置为1280x720,并输出为output.mp4文件。

这只是一些FFmpeg工具的常见用法示例,它具有非常丰富的功能和选项,可以执行各种复杂的音频和视频处理任务。你可以通过查阅FFmpeg的文档或在命令行中输入FFmpeg --help来获取更多详细的用法和选项信息。


1.1.4 FFmpeg的播放器ffplay

FFmpeg提供了一个命令行播放器工具,名为ffplay,它用于播放音频和视频文件。ffplay具有简单的界面,可以实时播放音频和视频,并支持基本的播放控制。

下面是一些使用ffplay的示例:

  1. 播放音频文件
ffplay input.mp3

上述命令将播放名为input.mp3的音频文件。

  1. 播放视频文件
ffplay input.mp4

上述命令将播放名为input.mp4的视频文件。

  1. 调整播放速度
ffplay -vf "setpts=0.5*PTS" input.mp4

上述命令将以0.5倍速度播放input.mp4视频文件。

  1. 跳转到指定时间
ffplay -ss 00:01:30 input.mp4

上述命令将从input.mp4视频文件的1分30秒处开始播放。

  1. 全屏模式
ffplay -fs input.mp4

上述命令将以全屏模式播放input.mp4视频文件。

ffplay还支持一些其他的选项和快捷键,例如调整音量、截图、设置字幕等。你可以通过在命令行中输入ffplay --help来查看详细的选项和用法信息。

需要注意的是,尽管ffplay是一个方便的命令行播放器工具,但它的功能相对简单,不如专业的媒体播放器那样完善和高级。如果你需要更复杂的播放需求,可以考虑使用其他媒体播放器软件,如VLC媒体播放器。


1.1.5 FFmpeg的多媒体分析器ffprobe

FFmpeg提供了一个多媒体分析器工具,名为ffprobeffprobe用于分析音频和视频文件的详细信息,包括编解码格式、比特率、分辨率、帧率、音频通道、元数据等。

以下是一些使用ffprobe的示例:

  1. 查看文件信息
ffprobe input.mp4

上述命令将显示input.mp4视频文件的详细信息,包括视频流、音频流、格式信息等。

  1. 输出JSON格式
ffprobe -v quiet -print_format json -show_format -show_streams input.mp4

上述命令将以JSON格式输出input.mp4视频文件的信息,包括格式信息和流信息。

  1. 查看特定流的信息
ffprobe -show_streams -select_streams a input.mp4

上述命令将显示input.mp4视频文件中的音频流信息。

  1. 提取元数据
ffprobe -show_format -loglevel error -of default=noprint_wrappers=1:nokey=1 -sexagesimal input.mp4

上述命令将提取input.mp4视频文件的元数据信息,如时长、创建时间等。

ffprobe支持许多其他的选项和用法,可以通过在命令行中输入ffprobe --help来查看详细的信息。

通过使用ffprobe,你可以快速了解音频和视频文件的各种属性和参数,以便进行后续的处理和分析。它在媒体文件的调试、调优、元数据提取等方面非常有用。


1.2 FFmpeg常用命令

1.2.1 FFmpeg的封装转换

下面是一些FFmpeg常用的命令,用于封装转换:

  1. 视频格式转换:
FFmpeg -i input.mp4 output.avi

这个命令将输入的input.mp4文件转换成output.avi文件,可以根据需要修改输入输出的文件名和路径。

  1. 视频封装:
FFmpeg -i input.mp4 -c copy output.mkv

这个命令将输入的input.mp4文件进行封装,转换成Matroska封装格式(.mkv)。使用-c copy选项可以直接复制视频和音频流,加快转换速度而不进行重新编码。

  1. 音频格式转换:
FFmpeg -i input.mp3 output.ogg

这个命令将输入的input.mp3音频文件转换成output.ogg文件,可以根据需要修改输入输出的文件名和路径。

  1. 视频转换并调整分辨率和比特率:
FFmpeg -i input.mp4 -s 1280x720 -b:v 2M output.mp4

这个命令将输入的input.mp4视频文件转换成output.mp4文件,并将视频分辨率调整为1280x720,视频比特率为2 Mbps。你可以根据需要修改分辨率和比特率的值。

  1. 视频转换并裁剪:
FFmpeg -i input.mp4 -ss 00:00:10 -to 00:00:30 -c:v copy -c:a copy output.mp4

这个命令将输入的input.mp4视频文件从第10秒裁剪到第30秒,并将裁剪后的视频保存为output.mp4文件。使用-c:v copy-c:a copy选项可以直接复制视频和音频流,加快裁剪速度而不进行重新编码。

  1. 视频转换并添加水印:
FFmpeg -i input.mp4 -i watermark.png -filter_complex "overlay=10:10" output.mp4

这个命令将输入的input.mp4视频文件添加名为watermark.png的水印,并将水印位置设置为距离视频左上角10个像素的位置,然后保存为output.mp4文件。你可以调整overlay滤镜中的位置参数来更改水印位置。

以上是一些常用的FFmpeg命令,用于封装转换音视频文件。


1.2.2 FFmpeg的转码参数

FFmpeg提供了许多参数和选项,可以进行音视频的转码操作。下面是一些常用的转码参数示例:

  1. 指定输出编码格式:

    -c:a <编码器>:设置音频编码器
    -c:v <编码器>:设置视频编码器
    

    例如,使用AAC音频编码器和H.264视频编码器进行转码:

    FFmpeg -i input.mp4 -c:a aac -c:v libx264 output.mp4 
    
  2. 指定输出码率(比特率):

    -b:a <音频比特率>:设置音频比特率
    -b:v <视频比特率>:设置视频比特率
    

    例如,设置音频比特率为128kbps,视频比特率为1000kbps:

    FFmpeg -i input.mp4 -b:a 128k -b:v 1000k output.mp4
    
  3. 指定输出分辨率:

    -s <宽度x高度>:设置输出分辨率
    

    例如,将视频转码为720p分辨率:

    FFmpeg -i input.mp4 -s 1280x720 output.mp4
    
  4. 指定输出帧率:

    -r <帧率>:设置输出帧率
    

    例如,将视频转码为30帧/秒:

    FFmpeg -i input.mp4 -r 30 output.mp4
    

这些是常见的转码参数示例,FFmpeg还提供了许多其他参数和选项,可以根据具体需求进行调整和配置。


1.2.3 FFmpeg的基本转码原理

FFmpeg的基本转码原理涉及音视频编解码、封装格式和过滤器的处理。下面简要介绍FFmpeg的基本转码原理:

  1. 音视频编解码
    音视频编解码是将原始的音视频数据(例如MP4、AVI文件)转换成不同的编解码格式(例如H.264视频、AAC音频)。编码是将原始数据压缩成较小的尺寸以节省空间,而解码是将压缩的数据还原为原始数据以进行播放或处理。
  2. 解封装和封装
    解封装是将音视频文件中的音视频流提取出来,使其成为独立的音频和视频数据流。封装是将音频和视频数据流组合成一个容器格式文件(如MP4、AVI、MKV),使其能够在播放器或编辑软件中正常播放。
  3. 过滤器
    过滤器是一种对音视频数据进行处理的工具。在转码过程中,过滤器可以用来进行音频增益、视频裁剪、添加水印等操作。FFmpeg内置了丰富的过滤器,也支持自定义过滤器。
  4. 转码流程
    FFmpeg的转码流程通常包括以下步骤:
    • 打开输入文件:FFmpeg打开输入文件,并解析其中的音视频流信息。
    • 找到正确的解码器:根据输入文件中的音视频编码格式,FFmpeg会自动选择正确的解码器来解码音视频流。
    • 解码音视频数据:FFmpeg将音视频数据解码成原始的未压缩数据。
    • 应用过滤器(可选):如果有需要,可以应用过滤器来对音视频数据进行处理。
    • 选择正确的编码器:根据输出文件的需求,FFmpeg会自动选择正确的编码器来编码音视频数据。
    • 编码音视频数据:FFmpeg将处理后的音视频数据编码成目标编码格式。
    • 封装数据:将编码后的音视频数据封装成输出文件。

值得注意的是,转码过程可能涉及多个解码器和编码器的调用,以及对音视频数据的处理和转换,因此转码可能是一项复杂的任务。正确选择合适的编解码参数和过滤器对于得到高质量的转码结果至关重要。


1.3 ffprobe常用命令

ffprobe是FFmpeg的伴侣工具,用于分析和提取音视频文件的元数据信息。它可以提供有关音视频文件的详细信息,如编解码器、分辨率、帧率、比特率、时长等。以下是一些常用的ffprobe命令示例:

  1. 获取音视频文件的基本信息:

    ffprobe -i input.mp4
    

    这个命令将输出音视频文件input.mp4的基本信息,包括容器格式、流的详细信息、编码器信息等。

  2. 获取音视频流的详细信息:

    ffprobe -i input.mp4 -show_streams
    

    使用该命令,ffprobe将显示音视频文件input.mp4中所有流的详细信息,包括流的索引、编码格式、比特率、分辨率、帧率等。

  3. 获取特定流的信息:

    ffprobe -i input.mp4 -show_streams -select_streams a:0
    

    上述命令将显示音视频文件input.mp4的第一个音频流的详细信息。你可以使用"-select_streams"参数选择特定的流,例如"a:0"表示音频流的索引为0。

  4. 输出JSON格式的信息:

    ffprobe -i input.mp4 -show_format -print_format json
    

    使用该命令,ffprobe将以JSON格式输出音视频文件input.mp4的格式信息,包括容器格式、时长、比特率等。

  5. 自定义输出信息:

    ffprobe -i input.mp4 -show_format -show_entries format=duration,size
    

    上述命令将显示音视频文件input.mp4的时长和文件大小。你可以使用"-show_entries"参数来指定要显示的信息,通过使用逗号分隔不同的项。

这些是一些常用的ffprobe命令示例,用于获取音视频文件的元数据信息。ffprobe提供了许多其他选项和参数,可以进一步定制输出信息的格式和内容。


1.4 ffplay常用命令

1.4.1 ffplay常用参数

ffplay是FFmpeg的一个简单播放器工具,可以用于实时播放音视频文件。它提供了一些常用的参数,用于控制播放过程和显示效果。以下是一些常用的ffplay参数示例:

  1. 播放音视频文件:

    ffplay input.mp4
    

    这个命令将使用ffplay播放音视频文件input.mp4。

  2. 跳过文件头部:

    ffplay -skip_initial_bytes 512 input.mp4
    

    使用该参数,ffplay将跳过输入文件的前512字节。这在某些情况下可能有助于解决一些播放问题。

  3. 指定起始时间:

    ffplay -ss 30 input.mp4
    

    上述命令将从音视频文件input.mp4的30秒处开始播放。可以使用"-ss"参数指定起始时间,以秒为单位。

  4. 指定播放窗口大小:

    ffplay -x 800 -y 600 input.mp4
    

    使用该命令,ffplay将在一个800x600的窗口中播放音视频文件input.mp4。可以使用"-x"和"-y"参数分别指定宽度和高度。

  5. 音量控制:

    ffplay -volume 50 input.mp4
    

    上述命令将以50%的音量播放音视频文件input.mp4。可以使用"-volume"参数指定音量大小,范围从0到100。

  6. 调整播放速度:

    ffplay -vf "setpts=0.5*PTS" input.mp4
    

    使用该命令,ffplay将以原来速度的两倍快速播放音视频文件input.mp4。可以使用"-vf"参数结合滤镜来调整播放速度。

这些是一些常用的ffplay参数示例,用于控制播放过程和显示效果。ffplay还提供了其他参数和选项,可以进一步定制播放器的行为。


1.4.2 ffplay高级参数

除了常用参数外,ffplay还提供了一些高级参数和选项,用于更细致地控制播放过程和显示效果。以下是一些ffplay的高级参数示例:

  1. 视频滤镜:

    ffplay -vf "scale=640:480,rotate=90" input.mp4
    

    使用该命令,ffplay将在播放音视频文件input.mp4时应用视频滤镜。上述示例中的滤镜将视频缩放为640x480,并将其旋转90度。你可以使用各种视频滤镜来调整视频的尺寸、旋转、亮度、对比度等。

  2. 音频滤镜:

    ffplay -af "volume=2" input.mp4
    

    上述命令将在播放音视频文件input.mp4时应用音频滤镜。示例中的音频滤镜将音量增加两倍。你可以使用各种音频滤镜来调整音频的音量、均衡器、混响等。

  3. 帧精准定位:

    ffplay -ss 00:01:30.500 input.mp4
    

    使用该命令,ffplay将在音视频文件input.mp4中精确定位到1分30.5秒的位置开始播放。可以使用"-ss"参数指定起始时间,支持以时:分:秒.毫秒的格式。

  4. 自动循环播放:

    ffplay -loop 0 input.mp4
    

    上述命令将在播放音视频文件input.mp4时自动循环播放,即播放完毕后会自动重新开始。可以使用"-loop"参数指定循环播放的次数,0表示无限循环。

  5. 设置窗口标题:

    ffplay -window_title "My Player" input.mp4
    

    使用该命令,ffplay将在播放窗口的标题栏上显示自定义的标题。可以使用"-window_title"参数来设置窗口标题。

这些是一些ffplay的高级参数示例,用于更细致地控制播放过程和显示效果。ffplay还有许多其他选项和参数,可以根据具体需求进行调整和配置。


1.4.3 ffplay的数据可视化分析应用

ffplay提供了一些数据可视化分析应用,可以帮助你分析和检查音视频文件的特性和质量。以下是一些ffplay的数据可视化分析应用的示例:

  1. 波形显示:

    ffplay -f lavfi "amovie=input.mp4, asplit [a][out1]; [a] showwaves=colors=red:scale=sqrt [out0]"
    

    上述命令将在ffplay中显示音频文件input.mp4的波形图。通过使用showwaves滤镜,你可以可视化音频波形,指定颜色、尺度等参数。

  2. 频谱显示:

    ffplay -f lavfi "amovie=input.mp4, asplit [a][out1]; [a] showspectrum=mode=combined:color=intensity:scale=log [out0]"
    

    使用该命令,ffplay将在播放器中显示音频文件input.mp4的频谱图。通过使用showspectrum滤镜,你可以可视化音频频谱,指定颜色、模式、尺度等参数。

  3. 视频直方图:

    ffplay -vf "split=2[a][b],[a]histogram,format=yuva444p[hh],[b][hh]overlay" input.mp4
    

    上述命令将在播放器中显示视频文件input.mp4的直方图。通过使用histogram滤镜,你可以可视化视频帧的亮度分布,然后将其与原视频进行叠加显示。

这些是一些ffplay的数据可视化分析应用示例,用于分析音视频文件的特性和质量。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/58443.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【分布式系统】聊聊系统监控

对于分布式系统来说&#xff0c;出现故障的是常有的事情&#xff0c;如何在短时间内找到故障的原因&#xff0c;排除故障是非常重要的&#xff0c;而监控系统是就像系统的眼睛可以通过分析相关数据&#xff0c;进一步管理和运维整个分布式系统。 监控系统的的基本功能包含 全…

C++初阶函数重载

目录 函数重载函数名修饰规则 函数重载 C语言不允许同名函数 CPP可以&#xff0c;但是要求构成函数重载 函数名相同&#xff0c;参数不同(参数类型、参数个数、参数类型的顺序)&#xff0c;返回值不同不能构成重载 int Add(int left, int right) {cout << "int Ad…

【机器学习】Gradient Descent for Logistic Regression

Gradient Descent for Logistic Regression 1. 数据集&#xff08;多变量&#xff09;2. 逻辑梯度下降3. 梯度下降的实现及代码描述3.1 计算梯度3.2 梯度下降 4. 数据集&#xff08;单变量&#xff09;附录 导入所需的库 import copy, math import numpy as np %matplotlib wi…

深入了解PostgreSQL:高级查询和性能优化技巧

在当今数据驱动的世界中&#xff0c;数据库的性能和查询优化变得尤为重要。 POSTGRESQL作为一种开源的关系型数据库管理系统&#xff0c;在处理大规模数据和复杂查询时表现出色。 但随着数据量和查询复杂性的增加&#xff0c;性能问题可能会显现出来。 本文将深入探讨POSTGR…

【蓝桥杯备考资料】如何进入国赛?

目录 写在前面注意事项数组、字符串处理BigInteger日期问题DFS 2013年真题Java B组世纪末的星期马虎的算式振兴中华黄金连分数有理数类&#xff08;填空题&#xff09;三部排序&#xff08;填空题&#xff09;错误票据幸运数字带分数连号区间数 2014年真题蓝桥杯Java B组03猜字…

App Cleaner Uninstaller for Mac 苹果电脑软件卸载工具

App Cleaner & Uninstaller 是一款非常有用的 Mac 应用程序清理和卸载工具。它可以彻底地清理系统中的应用程序、扩展和残留文件&#xff0c;以释放磁盘空间并优化系统性能。 此外&#xff0c;它还提供了磁盘空间监控和智能清理建议等功能&#xff0c;使用户可以轻松地管理…

GD32F103VE侵入事件

GD32F103VE的TAMPER引脚(PC13)&#xff0c;当PC13输入低电平时&#xff0c;会产生一个侵入检测事件。它会将所有“数据备份寄存器”内容清除。 这个功能有什么用&#xff1f; 一是防止被人开壳&#xff0c;抄袭。二是自毁功能。 直奔主题&#xff0c;多一句就是浪费时间。测试…

双环抱式“星环“座舱设计:比亚迪仰望U8内饰曝光,搭载骁龙8+车机

根据8月3日的消息&#xff0c;比亚迪车机先前使用的高通骁龙625芯片在网友中引发了一些批评&#xff0c;不过随着比亚迪将车机升级为骁龙665、骁龙690/695&#xff0c;这个问题得到了改善。 与此同时&#xff0c;大多数主流车企还在继续使用高通8155芯片&#xff08;相当于骁龙…

项目进度管理软件可以解决哪些难题?

项目进度管理是在项目实施过程中&#xff0c;对各阶段的进展程度和项目最终完成的期限所进行的管理。它以确保项目能在满足其时间约束条件的前提下实现其总体目标。 项目进度管理软件可以解决以下难题&#xff1a; 一、进度跟踪 如果没有完善的进度计划&#xff0c;项目很难…

mac切换jdk版本

查询mac已有版本 1、打开终端&#xff0c;输入&#xff1a; /usr/libexec/java_home -V注意&#xff1a;输入命令参数区分大小写(必须是-V) 2.目前本地装有两个版本的jdk xxxxedydeMacBook-Pro-9 ~ % /usr/libexec/java_home -V Matching Java Virtual Machines (2):20.0.1 (…

yolov5中的best.pt是如何确定的

在yolov5 的使用过程中几乎都会发现的问题&#xff1a; 训练结果有last.pt和best.pt , last.pt好理解&#xff0c;就是最后一个epoch的输出&#xff0c;但是best是啥意思&#xff1f;怎么才算best&#xff1f; 我们来一行行看train.py源码 追溯到./utils/metrics.py中的fitn…

-bash: fork: retry: Resource temporarily unavailable 问题解决

错误提示&#xff1a; -bash: fork: retry: Resource temporarily unavailable 错误分析&#xff1a;之前已经出现过这种资源限制的报错提醒&#xff0c;然后整个系统可用的连接数就已经用完了&#xff0c;无法使用工具来获取系统信息&#xff0c;所以将运行的任务脚本kill后开…

使用AIGC工具提升安全工作效率

新钛云服已累计为您分享760篇技术干货 在日常工作中&#xff0c;安全人员可能会涉及各种各样的安全任务&#xff0c;包括但不限于&#xff1a; 开发某些安全工具的插件&#xff0c;满足自己特定的安全需求&#xff1b;自定义github搜索工具&#xff0c;快速查找所需的安全资料、…

离散Hopfield神经网络的联想记忆与matlab实现

1案例背景 1.1离散Hopfield神经网络概述 Hopfield网络作为一种全连接型的神经网络,曾经为人工神经网络的发展开辟了新的研究途径。它利用与阶层型神经网络不同的结构特征和学习方法,模拟生物神经网络的记忆机理,获得了令人满意的结果。这一网络及学习算法最初是由美国物理学家…

RPC框架引入zookeeper服务注册与服务发现

Zookeeper概念及其作用 ZooKeeper是一个分布式的&#xff0c;开放源码的分布式应用程序协调服务&#xff0c;是Google的Chubby一个开源的实现&#xff0c;是大数据生态中的重要组件。它是集群的管理者&#xff0c;监视着集群中各个节点的状态根据节点提交的反馈进行下一步合理…

(自控原理)线性系统的时域分析法

目录 一、系统时间响应的性能指标 1、典型输入信号 2、动态性能与稳态性能 二、一阶系统的时域分析 1、一阶系统的数学模型 2、一阶系统的单位阶跃响应 三、二阶系统的时域分析 1、二阶系统的数学模型 2、二阶系统的单位阶跃响应 3、欠阻尼二阶系统的动态过程分析 4…

ORB-SLAM2学习笔记6之D435i双目IR相机运行ROS版ORB-SLAM2并发布位姿pose的rostopic

文章目录 0 引言1 D435i相机配置2 新增发布双目位姿功能2.1 新增d435i_stereo.cc代码2.2 修改CMakeLists.txt2.3 新增配置文件D435i.yaml 3 编译运行和结果3.1 编译运行3.2 结果3.3 可能出现的问题 0 引言 ORB-SLAM2学习笔记1已成功编译安装ROS版本ORB-SLAM2到本地&#xff0c…

Redis面试题2

Redis面试题-2 10、统计高并发网站每个网页每天的 UV 数据&#xff0c;结合Redis你会如何实现&#xff1f; 选用方案&#xff1a;HyperLogLog 如果统计 PV 那非常好办&#xff0c;给每个网页一个独立的 Redis 计数器就可以了&#xff0c;这个计数器的 key 后缀加上当天的日期…

【eNSP】静态路由

【eNSP】静态路由 原理网关路由表 实验根据图片连接模块配置路由器设备R1R2R3R4 配置PC的IP地址、掩码、网关PC1PC2PC3 配置静态路由查看路由表R1R2R3R4测试能否通信 原理 网关 网关与路由器地址相同&#xff0c;一般路由地址为.1或.254。 网关是当电脑发送的数据的目标IP不在…

芯片制造详解.光刻技术与基本流程.学习笔记(四)

本篇文章是看了以下视频后的笔记提炼&#xff0c;欢迎各位观看原视频&#xff0c;这里附上地址 芯片制造详解04&#xff1a;光刻技术与基本流程&#xff5c;国产之路不容易 芯片制造详解.光刻技术与基本流程.学习笔记 四 一、引子二、光刻(1).光掩膜(2).光刻机(3).光刻胶(4).挖…