FFmpeg技术详解

news2024/11/19 6:48:33

FFmpeg技术详解在这里插入图片描述

本文概不介绍相关安装配置,详情请入官方或者其他大佬博客,此处做出推荐:

https://ffmpeg.org/ FFmpeg官网

https://ffmpeg.github.net.cn/developer.html FFmpeg中文文档

https://blog.csdn.net/m0_47449768/article/details/130102406 ffmpeg安装教程(windows版)

https://blog.csdn.net/Number_oneEngineer/article/details/108848206 ffmpeg安装教程(Linux版)

要学会一个人在深夜秉灯独行…

1.FFmpeg主要功能介绍

FFmpeg(Fast Forward MPEG)是一个开源的多媒体处理工具集,它包含了音频和视频处理库、编码器、解码器、转码器等多种工具。以下是FFmpeg的主要功能介绍:

  1. 音视频编解码(Codec):
    • FFmpeg支持各种音频和视频编解码器,包括常见的H.264、H.265、AAC、MP3等,使其能够处理各种媒体格式。
  2. 格式转换:
    • 可以将不同格式的音频和视频文件相互转换,例如将MP4转换为AVI、将WAV转换为MP3等。
  3. 流媒体处理:
    • FFmpeg支持从网络摄像头、文件、或其他来源捕获音视频流,也能将处理后的流推送到服务器或其他设备。
  4. 图像处理:
    • FFmpeg不仅仅可以处理音视频,还支持图像处理,如提取视频帧,合成图片和视频等。
  5. 剪辑和编辑:
    • 可以对音视频进行剪辑和编辑,包括裁剪、剪切、拼接等操作。
  6. 字幕处理:
    • 支持字幕的添加、移除和编辑,可以将字幕嵌入到视频中或者从视频中提取字幕。
  7. 音频处理:
    • 提供了丰富的音频处理功能,包括音频的剪辑、混音、音量调节等。
  8. 实时视频处理:
    • FFmpeg能够处理实时的音视频流,适用于直播、视频会议等场景。
  9. 滤镜和效果:
    • 支持各种滤镜和效果,如模糊、旋转、调整亮度、对比度等。

FFmpeg的强大功能使其成为许多多媒体应用和服务的核心组件,例如视频编辑软件、流媒体服务器、嵌入式设备等。由于其广泛的支持和社区贡献,FFmpeg已经成为处理多媒体数据的重要工具之一。

2.音视频编解码

音视频编解码是指将音频和视频信号进行压缩和解压缩的过程,以便更有效地存储和传输这些数据。编码是指将原始的音视频数据转换为压缩格式,而解码是指将压缩格式的音视频数据还原为原始格式。FFmpeg作为一个多媒体处理工具,提供了丰富的音视频编解码功能,支持多种编码器和解码器。以下是音视频编解码的一些关键概念和FFmpeg的相关用法:

1.音频编解码:

1.音频编码:
  • 编码过程将原始音频数据转换为压缩格式,以减小文件大小或者便于传输。FFmpeg支持多种音频编码器,如AAC、MP3、Opus等。
# 使用AAC编码器将WAV文件转为AAC格式
ffmpeg -i input.wav -c:a aac output.aac
2.音频解码:
  • 解码过程将压缩格式的音频数据还原为原始格式,以便后续处理或播放。FFmpeg支持多种音频解码器,如AAC、MP3、FLAC等。
# 使用AAC解码器将AAC文件解码为WAV格式
ffmpeg -i input.aac -c:a pcm_s16le output.wav

2.视频编解码:

1.视频编码:
  • 编码过程将原始视频数据转换为压缩格式,以减小文件大小或者便于传输。FFmpeg支持多种视频编码器,如H.264、H.265、VP9等。
# 使用H.264编码器将原始视频转为H.264格式
ffmpeg -i input.mp4 -c:v libx264 output.mp4
2.视频解码:
  • 解码过程将压缩格式的视频数据还原为原始格式,以便后续处理或播放。FFmpeg支持多种视频解码器,如H.264、H.265、VP9等。
# 使用H.264解码器将H.264视频解码为原始格式
ffmpeg -i input.h264 -c:v rawvideo output.yuv
3.编解码参数设置:
  • 用户可以通过指定不同的编码器和解码器以及相应的参数,来调整音视频的压缩质量、文件大小等。
# 使用x264编码器,设置视频比特率
ffmpeg -i input.mp4 -c:v libx264 -b:v 1000k output.mp4
4.多路流处理:
  • FFmpeg允许同时处理多路音频和视频流,适用于多通道、多摄像头等场景。
# 处理多路音频流
ffmpeg -i input1.wav -i input2.wav -filter_complex amix=inputs=2:duration=longest output.wav

总的来说,FFmpeg作为一套全面的多媒体处理工具,提供了丰富的音视频编解码功能,能够满足各种多媒体处理的需求,包括格式转换、流媒体处理、编辑等。用户可以根据自己的需求选择不同的编码器和解码器,并通过合适的参数进行配置。

3.格式转换

格式转换是指将一个多媒体文件从一种格式转换为另一种格式的过程。在多媒体处理中,格式转换通常涉及音频、视频、图像等各种媒体类型。FFmpeg广泛用于格式转换操作。以下是一些关键的格式转换方面的介绍和FFmpeg的应用:

1.音频格式转换:

  • 从 WAV 到 MP3:

    ffmpeg -i input.wav -c:a libmp3lame output.mp3
    
  • 从 MP3 到 WAV:

    ffmpeg -i input.mp3 -c:a pcm_s16le output.wav
    

2.视频格式转换:

  • 从 MP4 到 GIF:

    ffmpeg -i input.mp4 -vf "fps=10,scale=320:-1:flags=lanczos" -c:v gif output.gif
    
  • 从 AVI 到 MP4:

    ffmpeg -i input.avi -c:v libx264 -c:a aac output.mp4
    

3.图像格式转换:

  • 从 PNG 到 JPEG:

    ffmpeg -i input.png output.jpg
    
  • 从 JPEG 到 PNG:

    ffmpeg -i input.jpg output.png
    

4.多媒体合并和拼接:

  • 合并音频和视频到一个文件:

    ffmpeg -i input_video.mp4 -i input_audio.mp3 -c:v copy -c:a aac output_combined.mp4
    
  • 拼接多个视频文件:

    ffmpeg -i "concat:input1.mp4|input2.mp4|input3.mp4" -c copy output_combined.mp4
    

5.调整媒体参数:

  • 调整视频尺寸:

    ffmpeg -i input.mp4 -vf scale=640:480 output_resized.mp4
    
  • 调整音频采样率:

    ffmpeg -i input.wav -ar 44100 output_44kHz.wav
    

6.实时流媒体格式转换:

  • 将 RTSP 流转换为 RTMP 流:

    ffmpeg -rtsp_transport tcp -i rtsp://input_stream -c copy -f flv rtmp://output_stream
    

7.字幕格式转换:

  • 将 SRT 字幕转换为 VTT 字幕:

    ffmpeg -i input.srt output.vtt
    

4.流媒体处理技术详解

流媒体处理是一种通过网络实时传输音频和视频数据的技术,允许用户在数据传输的同时观看或听取内容,而不需要等待完整的文件下载。FFmpeg是一个强大的工具,广泛用于流媒体处理。以下是流媒体处理的主要方面以及FFmpeg在这些方面的应用:

1.流媒体捕获:

  • FFmpeg可以从各种来源捕获音频和视频流,包括摄像头、麦克风、文件、URL等。通过使用FFmpeg的输入模块,用户可以轻松地实现从这些源中捕获多媒体数据。
# 从摄像头捕获视频
ffmpeg -f v4l2 -i /dev/video0 output.mp4

# 从麦克风捕获音频
ffmpeg -f alsa -i hw:0 output.wav

# 从URL捕获网络流
ffmpeg -i http://example.com/stream.m3u8 output.mp4

2.流媒体转码:

  • 在流媒体处理中,有时需要将音视频数据转码为特定格式或编码,以适应不同的设备或网络条件。FFmpeg提供了广泛的编码器和解码器支持,使得转码变得简单。
# 将输入流转码为H.264视频和AAC音频
ffmpeg -i input.mp4 -c:v libx264 -c:a aac output.mp4

3.流媒体推送:

  • FFmpeg可以将处理后的音视频流推送到流媒体服务器,以便在网络上进行分发。这对于实时直播和视频会议非常有用。
# 推送到RTMP服务器
ffmpeg -i input.mp4 -c:v libx264 -c:a aac -f flv rtmp://example.com/live/stream

4.实时流媒体处理:

  • FFmpeg支持实时处理音视频流,适用于需要低延迟的应用,如实时直播和视频通话。
# 实时捕获摄像头并推送到RTMP服务器
ffmpeg -f v4l2 -i /dev/video0 -c:v libx264 -c:a aac -f flv rtmp://example.com/live/stream

5.流媒体过滤器:

  • FFmpeg提供了丰富的过滤器,可以对音视频流进行各种处理,如添加水印、调整亮度、旋转、裁剪等。
# 在视频上添加水印
ffmpeg -i input.mp4 -i watermark.png -filter_complex overlay=10:10 output.mp4

6.自适应比特率:

  • FFmpeg可以实现自适应比特率(Adaptive Bitrate Streaming,ABR),以根据用户的网络条件自动调整流的质量。
# 使用多个输出流实现自适应比特率
ffmpeg -i input.mp4 -c:v libx264 -b:v 2000k -c:a aac -b:a 128k -f hls -hls_time 4 -hls_playlist_type vod output.m3u8

上述示例展示了一些FFmpeg在流媒体处理中的常见用法。这些功能使FFmpeg成为流媒体处理的强大工具,适用于多种场景,包括在线直播、视频会议、实时通信等。

5.图像处理

图像处理是对图像进行各种操作和变换的过程,旨在改善图像的质量、提取信息、增强特定特征或实现其他特定目标。FFmpeg不是专门设计用于图像处理的工具,但它仍然提供了一些图像处理的功能,尤其是在处理视频时。以下是一些常见的图像处理任务和FFmpeg的应用:

1. 提取视频帧:

  • 提取所有视频帧:

    ffmpeg -i input_video.mp4 -vf "select=eq(n\,0)" -vframes 1 output_frame.png
    
  • 提取特定时间的视频帧:

    ffmpeg -i input_video.mp4 -ss 00:01:30 -vframes 1 output_frame.png
    

2. 水印添加:

  • 在视频中添加静态水印:

    ffmpeg -i input_video.mp4 -i watermark.png -filter_complex "overlay=10:10" output_watermarked.mp4
    
  • 在视频中添加动态水印(GIF):

    ffmpeg -i input_video.mp4 -ignore_loop 0 -i watermark.gif -filter_complex "overlay=10:10" output_watermarked.mp4
    

3. 图像旋转:

  • 将图像顺时针旋转90度:

    ffmpeg -i input_image.jpg -vf "transpose=1" output_rotated.jpg
    

4. 图像裁剪:

  • 裁剪图像:

    ffmpeg -i input_image.jpg -vf "crop=w:h:x:y" output_cropped.jpg
    

5. 图像大小调整:

  • 调整图像尺寸:

    ffmpeg -i input_image.jpg -vf "scale=width:height" output_resized.jpg
    

6. 添加滤镜和特效:

  • 在视频上应用黑白滤镜:

    ffmpeg -i input_video.mp4 -vf "hue=s=0" -c:a copy output_black_and_white.mp4
    

7. 实时视频处理:

  • 实时处理视频并显示在窗口中:

    ffplay -vf "scale=640:480" input_video.mp4
    

8. 图像序列处理:

  • 将图像序列合成视频:

    ffmpeg -framerate 30 -i frame_%04d.png -c:v libx264 -pix_fmt yuv420p output_video.mp4
    

请注意,FFmpeg的主要用途是处理音视频,因此在某些图像处理任务上,可能有更适合的专用工具。然而,FFmpeg在处理视频时提供了一些有用的图像处理功能,特别是当图像与视频密切相关时。

6.剪辑和编辑

剪辑和编辑是指对音频和视频进行截取、拼接、修剪、合并等操作,以达到用户期望的效果。FFmpeg也可以用于进行各种剪辑和编辑任务。以下是一些常见的剪辑和编辑任务以及FFmpeg的应用:

1. 视频剪辑:

  • 截取视频片段:

    ffmpeg -i input_video.mp4 -ss 00:00:30 -t 00:00:10 -c:v copy -c:a copy output_clip.mp4
    
  • 将多个视频合并:

    ffmpeg -i input1.mp4 -i input2.mp4 -filter_complex concat=n=2:v=1:a=1 -c:v libx264 -c:a aac output_combined.mp4
    
  • 分离音频和视频:

    ffmpeg -i input_video.mp4 -c:v copy -an output_video.mp4  # 提取视频
    ffmpeg -i input_video.mp4 -c:a copy -vn output_audio.mp3  # 提取音频
    

2. 音频剪辑:

  • 截取音频片段:

    ffmpeg -i input_audio.mp3 -ss 00:01:00 -t 00:00:30 -c:a copy output_clip.mp3
    
  • 将多个音频合并:

    ffmpeg -i input1.mp3 -i input2.mp3 -filter_complex concat=n=2:v=0:a=1 -c:a aac output_combined.mp3
    

3. 剪辑并合并音视频:

  • 截取并合并音视频:

    ffmpeg -i input_video.mp4 -i input_audio.mp3 -ss 00:00:30 -t 00:01:00 -c:v copy -c:a copy output_combined.mp4
    

4. 添加转场效果:

  • 使用交叉淡入淡出效果合并视频:

    ffmpeg -i input1.mp4 -i input2.mp4 -filter_complex "[0:v]fade=t=out:st=5:d=1[v0];[1:v]fade=t=in:st=0:d=1[v1];[v0][v1]concat=n=2:v=1:a=0" -c:v libx264 -c:a aac output_transition.mp4
    

5. 在视频上添加字幕:

  • 在视频中添加SRT字幕:

    ffmpeg -i input_video.mp4 -vf "subtitles=subtitles.srt" output_video_with_subtitles.mp4
    

6. 视频速度调整:

  • 将视频速度减半:

    ffmpeg -i input_video.mp4 -vf "setpts=2.0*PTS" -an output_slow.mp4
    

7. 调整音频音调:

  • 将音频提高一个音调:

    ffmpeg -i input_audio.mp3 -af "asetrate=2*44100,atempo=0.5" output_high_pitch.mp3
    

FFmpeg的命令行选项非常强大,可以进行高级的多媒体处理操作。用户可以根据自己的需求选择合适的命令,对音频和视频进行定制化的剪辑和编辑。

7.字幕处理

字幕处理是指在视频中添加、编辑或移除字幕(Subtitles)。字幕可以包含对话、场景描述、翻译等信息,提供更好的观看体验。FFmpeg支持对字幕进行各种操作,包括添加、合并、转换格式等。以下是一些常见的字幕处理任务以及FFmpeg的应用:

1. 添加外部字幕:

  • 在视频上添加SRT字幕:

    ffmpeg -i input_video.mp4 -vf "subtitles=subtitles.srt" output_video_with_subtitles.mp4
    
  • 在视频上添加ASS字幕:

    ffmpeg -i input_video.mp4 -vf "ass=subtitles.ass" output_video_with_ass_subtitles.mp4
    

2. 合并多个字幕流:

  • 合并SRT和ASS字幕:

    ffmpeg -i input_video.mp4 -vf "subtitles=subtitles.srt:force_style='FontName=Arial,BorderStyle=3'" -vf "ass=subtitles.ass" output_video_with_merged_subtitles.mp4
    

3. 转换字幕格式:

  • 从SRT转换为ASS:

    ffmpeg -i input_subtitles.srt output_subtitles.ass
    
  • 从ASS转换为SRT:

    ffmpeg -i input_subtitles.ass output_subtitles.srt
    

4. 提取字幕流:

  • 从视频中提取SRT字幕:

    ffmpeg -i input_video.mp4 -map 0:s:0 output_subtitles.srt
    

5. 修改字幕样式:

  • 在视频上添加自定义样式的字幕:

    ffmpeg -i input_video.mp4 -vf "subtitles=subtitles.srt:force_style='FontName=Arial,FontSize=24,BorderStyle=3'" output_video_with_styled_subtitles.mp4
    

6. 设置字幕显示时间:

  • 延迟字幕显示:

    ffmpeg -i input_video.mp4 -vf "subtitles=subtitles.srt:force_style='Delay=2000'" output_video_with_delayed_subtitles.mp4
    

7. 删除字幕流:

  • 从视频中删除所有字幕流:

    ffmpeg -i input_video.mp4 -c copy -map 0 -map -0:s output_video_without_subtitles.mp4
    

8.音频处理

音频处理是对音频数据进行各种操作和变换的过程,旨在改善音频质量、提取特定特征、进行混音等,FFmpeg也提供了许多音频处理的功能。以下是一些常见的音频处理任务以及FFmpeg的应用:

1. 音频格式转换:

  • 将WAV格式转为MP3:

    ffmpeg -i input.wav -c:a libmp3lame output.mp3
    
  • 将MP3格式转为WAV:

    ffmpeg -i input.mp3 -c:a pcm_s16le output.wav
    

2. 音频剪辑:

  • 截取音频片段:

    ffmpeg -i input_audio.mp3 -ss 00:01:00 -t 00:00:30 -c:a copy output_clip.mp3
    

3. 音频合并:

  • 将多个音频文件合并:

    ffmpeg -i input1.mp3 -i input2.mp3 -filter_complex concat=n=2:v=0:a=1 -c:a aac output_combined.mp3
    

4. 音频格式信息查看:

  • 查看音频文件信息:

    ffmpeg -i input_audio.mp3
    

5. 音频混音:

  • 将背景音乐混入语音:

    ffmpeg -i input_speech.wav -i input_background.mp3 -filter_complex amix=inputs=2:duration=first:dropout_transition=2 output_mix.mp3
    

6. 音频变速和变调:

  • 将音频速度提高一倍:

    ffmpeg -i input_audio.mp3 -filter:a "atempo=2.0" output_high_speed.mp3
    
  • 将音频音调提高一个半音:

    ffmpeg -i input_audio.mp3 -filter:a "asetrate=44100*1.05946" output_high_pitch.mp3
    

7. 音频去噪:

  • 使用ANR滤波器进行降噪:

    ffmpeg -i input_noisy_audio.wav -af "anlmdn=filter_type=1:denoise_strength=0.01" output_clean_audio.wav
    

8. 音频格式转换和视频剪辑:

  • 从视频中提取音频并转换格式:

    ffmpeg -i input_video.mp4 -vn -c:a aac output_audio.aac
    

FFmpeg支持多种音频编码和滤镜,用户可以根据需要进行不同的音频处理操作。命令行选项提供了丰富的功能,可以实现高级的音频处理任务。

9.实时视频处理

实时视频处理是指在视频流传输过程中对视频进行即时处理和操作。FFmpeg可以用于实时视频处理,包括从摄像头捕获、实时编码和解码、添加滤镜效果等。以下是一些常见的实时视频处理任务以及FFmpeg的应用:

1. 实时视频捕获:

  • 从摄像头捕获视频:

    ffmpeg -f v4l2 -i /dev/video0 -vf "scale=640:480" -c:v libx264 -f mpegts udp://127.0.0.1:1234
    

    上述命令从名为 /dev/video0 的摄像头捕获视频,调整分辨率为 640x480,使用 H.264 编码,并通过 UDP 协议实时传输到地址 udp://127.0.0.1:1234

2. 实时视频编码和解码:

  • 实时从摄像头捕获并在本地显示:

    ffmpeg -f v4l2 -i /dev/video0 -vf "scale=640:480" -c:v libx264 -an -f mpegts udp://127.0.0.1:1234
    

    上述命令从摄像头捕获视频,使用 H.264 编码,并通过 UDP 协议实时传输到地址 udp://127.0.0.1:1234,但在此例中不包含音频,因为 -an 表示禁用音频流。

  • 实时从网络流接收并在窗口中显示:

    ffplay -i udp://127.0.0.1:1234
    

    上述命令使用 ffplay 实时播放通过 UDP 协议接收到的视频流。

3. 实时视频滤镜和效果:

  • 在实时视频中添加水印并显示:

    ffmpeg -f v4l2 -i /dev/video0 -vf "movie=watermark.png [watermark]; [in][watermark] overlay=W-w-10:H-h-10 [out]" -c:v libx264 -an -f mpegts udp://127.0.0.1:1234
    

    上述命令从摄像头捕获视频,通过添加水印,并使用 H.264 编码,通过 UDP 协议实时传输到地址 udp://127.0.0.1:1234

4. 实时音视频处理:

  • 从摄像头捕获视频,添加水印并混合音频,实时播放:

    ffmpeg -f v4l2 -i /dev/video0 -i audio_input.wav -vf "movie=watermark.png [watermark]; [in][watermark] overlay=W-w-10:H-h-10 [out]" -c:v libx264 -c:a aac -f mpegts udp://127.0.0.1:1234 | ffplay -
    

    上述命令从摄像头捕获视频,添加水印并混合音频,通过 H.264 编码和 AAC 编码,实时传输到地址 udp://127.0.0.1:1234 并通过 ffplay 实时播放。

10.滤镜和效果

FFmpeg提供了丰富的滤镜和效果,可用于在视频处理过程中进行各种操作,例如调整亮度、对比度、添加水印、旋转等。这些滤镜和效果可以通过 -vf(视频滤镜)和 -af(音频滤镜)选项来指定。以下是一些常见的滤镜和效果以及它们的应用:

视频滤镜(-vf):

  1. 亮度和对比度调整:

    • 增加亮度和对比度:

      ffmpeg -i input.mp4 -vf "eq=brightness=0.2:contrast=1.5" output.mp4
      
  2. 色调、饱和度和亮度调整:

    • 调整色调、饱和度和亮度:

      ffmpeg -i input.mp4 -vf "hue=s=0.5:saturation=1.5:lightness=1.2" output.mp4
      
  3. 水印添加:

    • 在视频中添加静态水印:

      ffmpeg -i input.mp4 -i watermark.png -filter_complex "overlay=10:10" output.mp4
      
    • 在视频中添加动态水印(GIF):

      ffmpeg -i input.mp4 -ignore_loop 0 -i watermark.gif -filter_complex "overlay=10:10" output.mp4
      
  4. 旋转视频:

    • 顺时针旋转90度:

      ffmpeg -i input.mp4 -vf "transpose=1" output.mp4
      
  5. 视频剪裁:

    • 剪裁视频:

      ffmpeg -i input.mp4 -vf "crop=w:h:x:y" output.mp4
      
  6. 添加字幕:

    • 在视频上添加SRT字幕:

      ffmpeg -i input.mp4 -vf "subtitles=subtitles.srt" output.mp4
      

音频滤镜(-af):

  1. 音频音调调整:

    • 提高音频音调一个半音:

      ffmpeg -i input.mp3 -af "asetrate=44100*1.05946" output_high_pitch.mp3
      
  2. 音频混音:

    • 将两个音频混合:

      ffmpeg -i input1.mp3 -i input2.mp3 -filter_complex amix=inputs=2:duration=first:dropout_transition=2 output_mix.mp3
      
  3. 音频降噪:

    • 使用ANR滤波器进行降噪:

      ffmpeg -i input_noisy_audio.wav -af "anlmdn=filter_type=1:denoise_strength=0.01" output_clean_audio.wav
      

这些示例涵盖了一些常见的视频和音频滤镜和效果,但并不限于这些。FFmpeg支持许多滤镜和效果,用户可以根据需要选择合适的滤镜和参数。具体的滤镜和效果选项的详细信息可以查阅FFmpeg的文档。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Python之字符串中常用的方法

1. 去掉空格和特殊符号 name " abcdefgeyameng " name1 name.strip() # 并不会在原来的字符串上操作,返回一个去除了两边空白的字符串 print(name1, len(name1), name, len(name)) # abcdefgeyameng 14 abcdefgeyameng 17 # 去掉左边的空格和换行符 name2 n…

信息收集之子域名收集

渗透测试常见手法和思维 信息收集 简述 信息收集对于渗透测试前期来说是非常重要的,因为只有我们掌握了目标网站或目标主机足够多的信息之后,我们才能更好地对其进行漏洞检测。正所谓,知己知彼百战百胜! 信息收集的方式可以分…

Vue实战:两种方式创建Vue项目

文章目录 一、实战概述二、实战步骤(一)安装Vue CLI脚手架1、从Node.js官网下载LTS版本2、安装Node.js到指定目录3、配置Node.js环境变量4、查看node版本5、查看npm版本6、安装Vue Cli脚手架7、查看Vue Cli版本 (二)命令行方式构建…

libcurl开源库的编译与使用全攻略

libcurl简介 libcurl 是一个广泛使用的、支持多种协议的、开源的客户端URL传输库,提供了许多用于数据传输的API,例如文件传输、FTP、HTTP、HTTPS、SMTP等。libcurl 的主要特点包括 支持多种协议:libcurl 支持多种协议,如 HTTP、F…

【前后端的那些事】开源!前后端环境搭建+树形结构表格实现

文章目录 1. 前后端项目环境搭建2. table-tree2.1 后端准备2.2 前端准备 前言:最近写项目,发现了一些很有意思的功能,想写文章,录视频把这些内容记录下。但这些功能太零碎,如果为每个功能都单独搭建一个项目&#xff0…

spring cloud feign demo

1. 工程结构 2. 父工程pom.xml <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.…

还在因为版本不一致重装node吗,用它试试

一、卸载nodejs 首先卸载已安装的nodejs&#xff0c;总体分三步 1)打开控制面板&#xff0c;卸载nodejs 2)打开计算机->高级->环境变量&#xff0c;删除path中nodejs相关的配置 3)打开nodejs安装目录&#xff0c;整体删除 打开cmd&#xff0c;输入以下命令&#xff…

浅谈 Raft 分布式一致性协议|图解 Raft

前言 大家好&#xff0c;这里是白泽。本文是一年多前参加字节训练营针对 Raft 自我整理的笔记。 本篇文章将模拟一个KV数据读写服务&#xff0c;从提供单一节点读写服务&#xff0c;到结合分布式一致性协议&#xff08;Raft&#xff09;后&#xff0c;逐步扩展为一个分布式的…

SpringBoot原理(@Conditional)—三种自动配置方法、步骤详解

简介&#xff1a;我们一直在说基于SpringBoot开发简单、快捷&#xff0c;但是总是不太清楚为什么会有这样的便利&#xff0c;对于开发人员来说我们不仅要知其然&#xff0c;还要知其所以然&#xff0c;这篇文章就是说明SpringBoot的底层原理&#xff0c;让读者对SpringBoot底层…

瑞_Java开发手册_(二)异常日志

文章目录 异常日志的意义(一) 错误码(二) 异常处理(三) 日志规约附&#xff1a;错误码列表 &#x1f64a;前言&#xff1a;本文章为瑞_系列专栏之《Java开发手册》的异常日志篇&#xff0c;本篇章主要介绍异常日志的错误码、异常处理、日志规约。由于博主是从阿里的《Java开发手…

逆水行舟 不进则退

目录 一、前言 二、2023年度总结 三、2024展望未来 一、前言 这是我从工作以来到现在最喜欢的一句话&#xff0c;我想把这句话送给自己也想送给大家。 2019年7月实习到现在已经过去了四年多&#xff0c;进入2024年也迎来了我工作生涯的第五个年头。 在这个行业里&#xff…

宠物空气净化器哪个牌子好?实惠的猫用空气净化器牌子推荐

对于养猫的朋友来说&#xff0c;猫咪掉毛绝对是一个让人头痛的问题。猫毛和皮屑会飘散在空气中&#xff0c;不仅会遍布全屋的各个角落&#xff0c;而且打扫起来也麻烦&#xff0c;特别是一些清理不了的猫毛&#xff0c;甚至还可能引起人的过敏反应&#xff0c;例如咳嗽和哮喘。…

PXIe-6396国产替代,8路AI(18位,14 MS/s/ch),2路A​O,24路DIO,PXI多功能I/O模块

PXIe&#xff0c;8路AI&#xff08;18位&#xff0c;14 MS/s/ch&#xff09;&#xff0c;2路A​O&#xff0c;24路DIO&#xff0c;PXI多功能I/O模块 PXIe-6396是一款同步采样的多功能DAQ设备。该模块提供了模拟 I/O、数字I/O、四个32位计数器和模拟和数字触发。板载NI-STC3定时…

RT-Thread GD32F4xx实现SD卡热插拔检测功能

GD32F470移植RT-Thread操作系统添加SD卡功能&#xff0c;增加SD卡热插拔检测 一、RT-Thread移植sd卡功能二、实现SD卡热插拔检测原理三、软件实现过程四、延展之ASSERT ERROR&#xff0c;即RT-Thread断言错误五、延展之STM32 SD卡热插拔检测六、结束语 一、RT-Thread移植sd卡功…

Java研学-过滤与监听

一 过滤器 Filter 1 介绍 Java Web 组件之一(Servlet 的功能)&#xff0c;可改变一个request和修改一个response。Filter不是Servlet&#xff0c;不能产生一个response&#xff0c;它是在一个request 到达Servlet之前预处理 request&#xff0c;也可以在response离开Servlet 后…

新一代数字原住民:市场痛点与“繁”思维应对之道

随着科技的迅速发展&#xff0c;尤其是互联网的普及&#xff0c;新一代数字原住民经营者已经逐渐成为市场的主力军。不同于传统的消费者&#xff0c;有着独特的消费习惯和心理需求。企业要在这激烈的市场竞争中获得优势&#xff0c;深入了解这一群体的特征和心理、行为&#xf…

【EMC专题】浪涌的成因与ICE 61000-4-5标准

什么是浪涌? 浪涌是一种无法预料的瞬态电压或电流尖峰,由附近的电子产品或是环境导致。 了解浪涌非常重要,因为浪涌有可能会导致设备的电气过应力损坏,造成系统故障等。 对于系统设计来说,重要的一点是我们如果无法控制浪涌的产生,那么只能通过将瞬态峰值电流导入到地,…

Pyside6/PyQt6中的QTimer类:轻松实现定时任务

文章目录 📖 介绍 📖🏡 环境 🏡📒 使用方法 📒📝 参数说明📝 常用方法⚓️ 相关链接 ⚓️📖 介绍 📖 在PySide/PyQt框架中,QTimer是一个核心类,主要用于在指定的间隔时间后触发某些事件。QTimer为开发者提供了一种处理和调度重复或单次动作的简便方式。 …

CSP网络结构实战 - 降低计算量的特征融合方式

CSP网络结构实战 - 降低计算量的特征融合方式 CSP网络结构实战 - 降低计算量的特征融合方式0. 引言1. CSP网络结构简介1.1 核心思想1.2 解决的问题 2. 实验验证2.1 CSP网络模型构建2.2 数据读取与预处理2.3 模型训练与验证 3. 对比实验4. 结果与总结 CSP网络结构实战 - 降低计算…

change事件传递多个参数

1.传递value页面参数 change"handleChange($event,123)" 2.传递选中的keyvalue或是选中的item 我用的是a-auto-complete&#xff0c;试验了用a-select也可以 就是在option里面&#xff0c;:value"JSON.stringify(d)" 然后在eval(( value ))转化就可…