FFmpeg技术详解

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.mfbz.cn/a/320778.html

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

相关文章

以太网抓包软件Wireshake应用介绍( SMART PLC MODBUSTCP通信)

首先介绍下常看到的字符ACK,ACK是确认字符,在数据通信中,接收站发给发送站的一种传输类控制字符,表示发来的数据已确认接收无误。在TCP/IP协议中,如果接收方成功的接收到数据,会回复一个ACK数据。通常ACK信号有自己固定的格式,长度大小,由接收方回复给发送方。ACK在TCP的…

Github Copilot最全的安装与使用教程:一款非常好用的AI编程工具

Github Copilot最全的安装与使用教程 第一章 安装1.安装 GitHub Copilot2.获取资格第二章 使用1.产生建议1.1 键入你想要完成的操作的注释1.2 CtrlI 2. 接受建议3.查看下一个建议3.接受部分建议4.在新选项卡接受建议5.完成多项功能6.聊天 GitHub Copilot 供经过验证的学生、教师…

AI绘画风格化实战

在社交软件和短视频平台上,我们时常能看到各种特色鲜明的视觉效果,比如卡通化的图片和中国风的视频剪辑。这些有趣的风格化效果其实都是图像风格化技术的应用成果。 风格化效果举例 MidLibrary 这个网站提供了不同的图像风格,每一种都带有鲜…

【前端性能优化】如何取消http请求

文章目录 需要取消http请求的3种经典场景原生XMLHttpRequest取消http请求fetch取消http请求axios取消http请求哪些情况需要取消HTTP请求取消http请求能带来哪些性能提升 需要取消http请求的3种经典场景 场景一:有一个实时搜索功能,每当用户输入内容改变的…

构建中国人自己的私人GPT-有道GPT

创作不易,请大家多鼓励支持。 在现实生活中,很多人的资料是不愿意公布在互联网上的,但是我们又要使用人工智能的能力帮我们处理文件、做决策、执行命令那怎么办呢?于是我们构建自己或公司的私人GPT变得非常重要。 先看效果 一、…

训练AI模型:寻找最优参数a和b

人工智能的学习之路非常漫长,不少人因为学习路线不对或者学习内容不够专业而举步难行。不过别担心,我为大家整理了一份600多G的学习资源,基本上涵盖了人工智能学习的所有内容。点击下方链接,0元进群领取学习资源,让你的学习之路更加顺畅!记得…

基于面向对象,C++实现双链表

双链表同单链表类似,由一个值和两个指针组成 Node.h节点头文件 #pragma once class Node { public:int value;Node* prev;Node* next;Node(int value);~Node(); };Node.cpp节点源文件 #include "Node.h"Node::Node(int value) {this->value value…

深度学习笔记(六)——网络优化(2):参数更新优化器SGD、SGDM、AdaGrad、RMSProp、Adam

文中程序以Tensorflow-2.6.0为例 部分概念包含笔者个人理解,如有遗漏或错误,欢迎评论或私信指正。 截图和程序部分引用自北京大学机器学习公开课 在前面的博文中已经学习了构建神经网络的基础需求,搭建了一个简单的双层网络结构来实现数据的分…

【设计模式】什么场景可以考虑使用简单工厂模式

1.概述 工厂模式是一种创建型模式,主要作用就是创建对象,将对象的创建过程和使用的过程进行解耦。我们平时说的工厂模式实际上是对三种不同类型的工厂模式的统称,简单工厂、工厂方法、抽象工厂,而在23种设计模式中,只…

VSCode编写 C/C++ 程序

VSCode 全称 Visual Studio Code,是微软出的一款轻量级代码编辑器,免费、开源而且功能强大。它支持几乎所有主流的程序语言的语法高亮、智能代码补全、自定义热键、括号匹配、代码片段、代码对比 Diff、GIT 等特性,支持插件扩展,并…

SG-8101CGA 系列 (晶体振荡器 可编程 可用 +125°C )

SG-8101CGA是可编程晶体振荡器,具有CMOS输出,适用于汽车,同时,该系列还提供相同的频率和其他参数的轻松编程能力,符合AEC-Q100标准,具有出色的电磁兼容性和稳定性,可以在各种环境下使用。外部尺…

Linux下编写zlg7290驱动(1)

大家好,今天给大家介绍Linux下编写zlg7290驱动(1),文章末尾附有分享大家一个资料包,差不多150多G。里面学习内容、面经、项目都比较新也比较全!可进群免费领取。 在智能仪表中,经常会用到键盘、数码管等外设。因此&…

Windows Server 2012 R2部署项目

JDK 下载JDK 1.直接官网下载:http://www.oracle.com/; 2.我用的是1.8,阿里云盘分享地址:https://www.aliyundrive.com/s/u4V9x1AHL2r 安装jdk 双击安装点击下一步如果不改变路径就一直下一步 安装完成直接点击关闭即可&#x…

高光谱分类论文解读分享之基于形态卷积神经网络的高光谱影像分类

IEEE TGRS 2021:基于形态卷积神经网络的高光谱影像分类 题目 Morphological Convolutional Neural Networks for Hyperspectral Image Classification 作者 Swalpa Kumar Roy; Ranjan Mondal; Mercedes E. Paoletti; Juan M. Haut; Antonio Plaza 关键词 Clas…

鸿蒙开发基础-Web组件之cookie操作

使用ArkTS语言实现一个简单的免登录过程,向大家介绍基本的cookie管理操作。主要包含以下功能: 获取指定url对应的cookie的值。设置cookie。清除所有cookie。免登录访问账户中心。 cookie读写操作 首次打开应用时,应用首页的Web组件内呈现的…

【OJ】环形链表

目录 1. 环形链表||(142)1.1 题目描述1.2 题目分析1.3 代码 2. 环形链表(141)2.1 题目描述2.2 题目分析2.3 代码 1. 环形链表||(142) 1.1 题目描述 1.2 题目分析 带环链表:尾节点的next指向链…

Windows之任意文件删除到提权

前言 ZDI 发表过从任意文件夹删除到提权的利用过程,还提供了任意文件删除到提权的利用过程,所以一字之差但是漏洞利用方式也是有细微偏差的。 这里把任意文件删除和任意文件夹删除漏洞提权结合起来分析,是因为其最后的利用过程是一样的&…

第二节课 书生·浦语大模型趣味 Demo笔记及作业

文章目录 笔记作业基础作业:进阶作业: 笔记 书生浦语大模型InternLM-Chat-7B 智能对话 Demo:https://blog.csdn.net/m0_49289284/article/details/135412067书生浦语大模型Lagent 智能体工具调用 Demo:https://blog.csdn.net/m0_…

k8s node节点加入集群,token过期

1、master01节点执行 kubeadm token create --print-join-command 2、执行命令 kubeadm join 192.168.0.236:16443 --token qucd8q.hsfq4a1afluzaky3 --discovery-token-ca-cert-hash sha256:92175a356db070deb2ddd3823e288e3005a4baeec9b68580dcc11ce4d3767195 3、查看node02…
最新文章