【Python百寶箱】Python中的音視頻處理: 探索多樣化的庫和工具

Python中的音視頻處理: 探索多樣化的庫和工具

前言

在數字化時代,音視頻處理不僅僅是娛樂產業的需求,還滲透到了教育、醫療、安防等多個領域。Python作為一門強大而靈活的編程語言,為開發人員提供了豐富的資源來處理和分析音視頻數據。本文旨在為讀者介紹Python中一些主流的音視頻處理庫,幫助他們更好地應對實際挑戰,提高處理效率,實現更豐富的功能。

文章目錄

  • Python中的音視頻處理: 探索多樣化的庫和工具
    • 前言
    • 1. 引言
      • 1.1 背景介紹
    • 2. 音頻處理
      • 2.1 pydub庫
        • 2.1.1 概述
        • 2.1.2 核心功能
        • 2.1.3 音頻效果和調整
          • 2.1.3.1 音量調整
          • 2.1.3.2 音頻混響效果
        • 2.1.4 音頻分析和處理
          • 2.1.4.1 波形圖繪制
          • 2.1.4.2 頻譜圖繪制
      • 2.2 soundfile庫
        • 2.2.1 概述
        • 2.2.2 主要特性
        • 2.2.3 音頻濾波和處理
          • 2.2.3.1 低通濾波
          • 2.2.3.2 音頻放大和縮小
    • 3. 視頻處理
      • 3.1 moviepy庫
        • 3.1.1 概述
        • 3.1.2 核心功能
        • 3.1.3 視頻特效和轉場效果
          • 3.1.3.1 添加音頻
          • 3.1.3.2 視頻混合和疊加
        • 3.1.4 視頻分析和處理
          • 3.1.4.1 視頻幀處理
          • 3.1.4.2 視頻速度調整
      • 3.2 OpenCV庫
        • 3.2.1 概述
        • 3.2.2 視頻處理功能
        • 3.2.3 視頻分析和特征提取
          • 3.2.3.1 運動檢測
          • 3.2.3.2 視頻中的人臉檢測
      • 3.3 imageio-ffmpeg庫
        • 3.3.1 概述
        • 3.3.2 核心功能
        • 3.3.3 視頻剪輯和轉碼
          • 3.3.3.1 視頻剪輯
          • 3.3.3.2 視頻轉碼
        • 3.3.4 視頻處理和特效
          • 3.3.4.1 添加水印
          • 3.3.4.2 調整亮度和對比度
    • 4. 綜合應用
      • 4.1 音視頻合成
        • 4.1.1 使用pydub和moviepy進行音視頻合成
        • 4.1.2 使用pydub和moviepy進行音視頻合成的高級特效
          • 4.1.2.1 添加背景音樂
          • 4.1.2.2 視頻疊加和混合
        • 4.1.3 高級音頻處理和混音
          • 4.1.3.1 音頻混音
          • 4.1.3.2 音頻剪輯和拼接
      • 4.2 音頻分析與可視化
        • 4.2.1 使用librosa和matplotlib進行音頻可視化
        • 4.2.2 使用librosa和matplotlib進行高級音頻分析
          • 4.2.2.1 節奏分析與圖示
          • 4.2.2.2 音頻譜圖細節展示
      • 總結

1. 引言

1.1 背景介紹

音視頻處理在今天的應用中變得愈發重要。Python提供了多樣且強大的庫和工具,使得音視頻處理更加便捷。

2. 音頻處理

2.1 pydub庫

2.1.1 概述

pydub是一個用于處理音頻文件的強大庫,提供了豐富的功能,包括格式轉換、切割等。

2.1.2 核心功能
  • 音頻格式轉換
from pydub import AudioSegmentaudio = AudioSegment.from_file("input.wav", format="wav")
audio.export("output.mp3", format="mp3")
  • 音頻切割和合并
segment = audio[:5000]  # 切割前5秒
combined = audio + segment  # 合并音頻
  • 音頻格式信息獲取
channels = audio.channels
sample_width = audio.sample_width
2.1.3 音頻效果和調整
2.1.3.1 音量調整

pydub庫不僅可以進行基本的格式轉換和切割,還能輕松進行音頻效果的調整。以下是調整音量的實例代碼:

from pydub import AudioSegmentaudio = AudioSegment.from_file("input.mp3", format="mp3")
# 將音量提高 10 dB
louder_audio = audio + 10# 將音量降低 5 dB
quieter_audio = audio - 5# 導出調整音量后的音頻
louder_audio.export("louder_output.mp3", format="mp3")
quieter_audio.export("quieter_output.mp3", format="mp3")
2.1.3.2 音頻混響效果

通過pydub,你可以為音頻添加混響效果,使其更加生動。以下是添加混響效果的實例代碼:

from pydub import AudioSegment
from pydub.effects import reverbaudio = AudioSegment.from_file("input.wav", format="wav")
# 添加混響效果
reverberated_audio = reverb(audio, reverberance=50, high_freq_damping=10)# 導出帶有混響效果的音頻
reverberated_audio.export("reverberated_output.wav", format="wav")
2.1.4 音頻分析和處理
2.1.4.1 波形圖繪制

pydub庫也可以用于簡單的音頻分析和可視化。以下是繪制音頻波形圖的實例代碼:

from pydub import AudioSegment
import matplotlib.pyplot as pltaudio = AudioSegment.from_file("input.wav", format="wav")
# 將音頻數據轉換為numpy數組
samples = audio.get_array_of_samples()# 繪制波形圖
plt.plot(samples)
plt.xlabel("Sample")
plt.ylabel("Amplitude")
plt.title("Audio Waveform")
plt.show()
2.1.4.2 頻譜圖繪制

利用pydub和matplotlib庫,你可以輕松生成音頻的頻譜圖:

from pydub import AudioSegment
import matplotlib.pyplot as pltaudio = AudioSegment.from_file("input.wav", format="wav")
# 獲取音頻頻譜數據
spectrum = audio.spectrogram()# 繪制頻譜圖
plt.imshow(spectrum, aspect='auto', cmap='viridis', origin='lower')
plt.xlabel("Time")
plt.ylabel("Frequency")
plt.title("Audio Spectrogram")
plt.show()

通過這些拓展的例子,我們展示了pydub庫在音頻處理中更多的功能,包括音頻效果調整和簡單的分析處理。這使得pydub成為一個功能強大且靈活的音頻處理工具。

2.2 soundfile庫

2.2.1 概述

soundfile用于讀寫音頻文件,支持多種音頻格式,提供了高效的音頻文件操作接口。

2.2.2 主要特性
  • 高性能音頻讀取和寫入
import soundfile as sfdata, samplerate = sf.read('input.wav')
sf.write('output.flac', data, samplerate)
  • 多格式支持
supported_formats = sf.available_formats()
  • 元數據處理
info = sf.info('input.wav')
channels = info.channels
duration = info.duration
2.2.3 音頻濾波和處理
2.2.3.1 低通濾波

soundfile庫不僅能夠進行音頻讀寫,還支持一些基本的音頻濾波操作。以下是一個低通濾波的實例代碼:

import soundfile as sf
import numpy as np
from scipy import signal# 生成一個示例音頻文件
sample_rate = 44100
time = np.arange(0, 5, 1/sample_rate)
signal_wave = np.sin(2 * np.pi * 1000 * time)  # 1000 Hz 正弦波
sf.write('sample.wav', signal_wave, sample_rate)# 讀取音頻文件
data, samplerate = sf.read('sample.wav')# 設計一個低通濾波器
nyquist = 0.5 * sample_rate
cutoff_frequency = 500  # 500 Hz 截止頻率
normal_cutoff = cutoff_frequency / nyquist
b, a = signal.butter(4, normal_cutoff, btype='low', analog=False, output='ba')# 應用濾波器
filtered_data = signal.lfilter(b, a, data)# 寫入濾波后的音頻文件
sf.write('filtered_output.wav', filtered_data, samplerate)
2.2.3.2 音頻放大和縮小

通過soundfile庫,你可以輕松進行音頻的放大和縮小操作。以下是一個音頻放大的實例代碼:

import soundfile as sf
import numpy as np# 生成一個示例音頻文件
sample_rate = 44100
time = np.arange(0, 5, 1/sample_rate)
signal_wave = np.sin(2 * np.pi * 1000 * time)  # 1000 Hz 正弦波
sf.write('sample.wav', signal_wave, sample_rate)# 讀取音頻文件
data, samplerate = sf.read('sample.wav')# 將音頻放大兩倍
amplified_data = data *
### 2.3 librosa庫#### 2.3.1 概述
librosa專注于音頻分析和特征提取,提供了豐富的音頻處理工具和算法。#### 2.3.2 核心功能
- **音頻特征提取**
```python
import librosay, sr = librosa.load('input.wav')
chroma = librosa.feature.chroma_stft(y=y, sr=sr)
  • 節奏分析
tempo, beat_frames = librosa.beat.beat_track(y=y, sr=sr)
  • 音頻信號處理
y_harm, y_perc = librosa.effects.hpss(y)

3. 視頻處理

3.1 moviepy庫

3.1.1 概述

moviepy是一個專注于視頻處理的庫,支持視頻剪輯、合并、特效添加等功能。

3.1.2 核心功能
  • 視頻剪輯和合并
from moviepy.editor import VideoFileClipclip = VideoFileClip("input.mp4").subclip(10, 20)
clip.write_videofile("output.mp4")
  • 文字和特效添加
clip = clip.fx(vfx.text.write, "Hello World!", fontsize=70, color='white')
  • 視頻格式轉換
clip.write_gif("output.gif")
3.1.3 視頻特效和轉場效果
3.1.3.1 添加音頻

在視頻中添加音頻是moviepy庫的一個強大功能。以下是一個將音頻添加到視頻的實例代碼:

from moviepy.editor import VideoFileClip# 讀取視頻和音頻文件
video_clip = VideoFileClip("video.mp4")
audio_clip = AudioFileClip("audio.mp3")# 將音頻添加到視頻中
video_clip = video_clip.set_audio(audio_clip)# 導出帶有音頻的視頻
video_clip.write_videofile("video_with_audio.mp4")
3.1.3.2 視頻混合和疊加

通過moviepy庫,你可以將多個視頻混合在一起,創建出令人驚艷的效果。以下是一個視頻混合的實例代碼:

from moviepy.editor import VideoFileClip, clips_array# 讀取兩個視頻文件
clip1 = VideoFileClip("video1.mp4")
clip2 = VideoFileClip("video2.mp4")# 將兩個視頻橫向疊加
final_clip = clips_array([[clip1, clip2]])# 導出疊加后的視頻
final_clip.write_videofile("combined_video.mp4")
3.1.4 視頻分析和處理
3.1.4.1 視頻幀處理

moviepy庫也支持對視頻的每一幀進行處理。以下是一個在視頻中添加模糊效果的實例代碼:

from moviepy.editor import VideoFileClip
from moviepy.video.fx import all# 讀取視頻文件
clip = VideoFileClip("input.mp4")# 對每一幀添加模糊效果
blurred_clip = clip.fx(all.fx.blur, k=5)# 導出添加模糊效果后的視頻
blurred_clip.write_videofile("blurred_output.mp4")
3.1.4.2 視頻速度調整

調整視頻的播放速度是moviepy庫的另一個有趣的功能。以下是一個將視頻減速兩倍的實例代碼:

from moviepy.editor import VideoFileClip# 讀取視頻文件
clip = VideoFileClip("input.mp4")# 將視頻減速兩倍
slow_clip = clip.fx(vfx.speedx, 0.5)# 導出減速后的視頻
slow_clip.write_videofile("slow_output.mp4")

通過這些例子,我們展示了moviepy庫在視頻處理中更多的功能,包括音頻處理、視頻混合和幀處理。這使得moviepy成為一個強大的工具,適用于各種視頻編輯和處理任務。

3.2 OpenCV庫

3.2.1 概述

OpenCV廣泛應用于計算機視覺,同時也支持視頻處理,提供了豐富的視頻處理功能。

3.2.2 視頻處理功能
  • 視頻捕獲和展示
import cv2cap = cv2.VideoCapture('input.mp4')
ret, frame = cap.read()
cv2.imshow('Video Frame', frame)
  • 視頻幀處理
gray_frame = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
  • 視頻編解碼
fourcc = cv2.VideoWriter_fourcc(*'XVID')
out = cv2.VideoWriter('output.avi', fourcc, 20.0, (640, 480))
out.write(frame)
3.2.3 視頻分析和特征提取
3.2.3.1 運動檢測

OpenCV提供了強大的運動檢測功能,可以用于監控場景中的活動。以下是一個簡單的運動檢測實例代碼:

import cv2cap = cv2.VideoCapture('input.mp4')# 讀取第一幀作為背景
ret, background = cap.read()while True:ret, frame = cap.read()# 計算當前幀與背景之間的差異diff = cv2.absdiff(frame, background)# 將差異圖像轉換為灰度圖gray_diff = cv2.cvtColor(diff, cv2.COLOR_BGR2GRAY)# 使用閾值進行二值化處理_, thresh = cv2.threshold(gray_diff, 30, 255, cv2.THRESH_BINARY)# 顯示運動檢測結果cv2.imshow('Motion Detection', thresh)# 更新背景為當前幀background = frameif cv2.waitKey(30) & 0xFF == 27:  # 按ESC鍵退出breakcap.release()
cv2.destroyAllWindows()
3.2.3.2 視頻中的人臉檢測

OpenCV也提供了人臉檢測的功能,可以在視頻中識別人臉。以下是一個簡單的人臉檢測實例代碼:

import cv2# 加載人臉檢測器
face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')cap = cv2.VideoCapture('input.mp4')while True:ret, frame = cap.read()# 將視頻幀轉換為灰度圖gray_frame = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)# 在灰度圖上進行人臉檢測faces = face_cascade.detectMultiScale(gray_frame, scaleFactor=1.1, minNeighbors=5, minSize=(30, 30))# 在原始圖像上標記檢測到的人臉for (x, y, w, h) in faces:cv2.rectangle(frame, (x, y), (x+w, y+h), (0, 255, 0), 2)# 顯示帶有人臉標記的圖像cv2.imshow('Face Detection', frame)if cv2.waitKey(30) & 0xFF == 27:  # 按ESC鍵退出breakcap.release()
cv2.destroyAllWindows()

通過這些例子,我們展示了OpenCV庫在視頻處理中更多的功能,包括運動檢測和人臉檢測。這使得OpenCV成為一個全面的工具,適用于各種視頻分析和處理任務。

3.3 imageio-ffmpeg庫

3.3.1 概述

imageio-ffmpeg是基于imageio的插件,提供對FFmpeg的支持,用于處理更多視頻格式和編解碼選項。

3.3.2 核心功能
  • 支持更多視頻格式
import imageio_ffmpeg as ffmpeginput_path = 'input.mkv'
output_path = 'output.mp4'
ffmpeg.input(input_path).output(output_path).run()
  • 提供更多編解碼選項
ffmpeg.input('input.mp4').output('output.avi', codec='libx264').run()
3.3.3 視頻剪輯和轉碼
3.3.3.1 視頻剪輯

imageio-ffmpeg庫可以方便地進行視頻剪輯,選擇特定時間段的視頻進行處理。以下是一個簡單的視頻剪輯實例代碼:

import imageio_ffmpeg as ffmpeginput_path = 'input.mp4'
output_path = 'trimmed_output.mp4'# 從第5秒到第15秒的視頻片段
ffmpeg.input(input_path, ss=5, to=15).output(output_path).run()
3.3.3.2 視頻轉碼

通過imageio-ffmpeg庫,你可以輕松進行視頻格式的轉碼。以下是一個將視頻轉換為WebM格式的實例代碼:

import imageio_ffmpeg as ffmpeginput_path = 'input.mp4'
output_path = 'output.webm'ffmpeg.input(input_path).output(output_path, codec='libvpx', quality=8).run()
3.3.4 視頻處理和特效
3.3.4.1 添加水印

imageio-ffmpeg庫也支持在視頻上添加水印。以下是一個在視頻中添加水印的實例代碼:

import imageio_ffmpeg as ffmpeginput_path = 'input.mp4'
output_path = 'output_with_watermark.mp4'
watermark_path = 'watermark.png'ffmpeg.input(input_path).output(output_path, vf='movie=' + watermark_path + ' [watermark]; [in][watermark] overlay=W-w-10:H-h-10 [out]').run()
3.3.4.2 調整亮度和對比度

imageio-ffmpeg庫允許你對視頻進行亮度和對比度的調整。以下是一個調整亮度和對比度的實例代碼:

import imageio_ffmpeg as ffmpeginput_path = 'input.mp4'
output_path = 'output_adjusted.mp4'ffmpeg.input(input_path).output(output_path, vf='eq=brightness=1.5:contrast=1.2').run()

通過這些例子,我們展示了imageio-ffmpeg庫在視頻處理中更多的功能,包括視頻剪輯、轉碼、添加水印和調整亮度對比度。這使得imageio-ffmpeg成為一個強大的工具,適用于各種視頻處理需求。

4. 綜合應用

4.1 音視頻合成

4.1.1 使用pydub和moviepy進行音視頻合成
  • 整合音頻和視頻文件
video_clip = VideoFileClip("video.mp4")
audio_clip = AudioSegment.from_file("audio.wav", format="wav")video_clip = video_clip.set_audio(audio_clip)
video_clip.write_videofile("output.mp4")
  • 添加特效和過渡效果
final_clip = CompositeVideoClip([video_clip])
final_clip = final_clip.fx(vfx.fadein, 2).fx(vfx.fadeout, 2)
final_clip.write_videofile("final_output.mp4")
4.1.2 使用pydub和moviepy進行音視頻合成的高級特效
4.1.2.1 添加背景音樂

除了基本的音視頻合成,你還可以通過pydub和moviepy庫為視頻添加背景音樂。以下是一個將音頻文件作為背景音樂添加到視頻的實例代碼:

from moviepy.editor import VideoFileClip, AudioFileClipvideo_clip = VideoFileClip("video.mp4")
audio_clip = AudioFileClip("background_music.mp3")# 將音頻文件設置為視頻的背景音樂
video_clip = video_clip.set_audio(audio_clip)# 導出帶有背景音樂的視頻
video_clip.write_videofile("video_with_music.mp4")
4.1.2.2 視頻疊加和混合

通過moviepy庫,你可以將多個視頻疊加在一起,創建出更復雜的合成效果。以下是一個視頻疊加和混合的實例代碼:

from moviepy.editor import VideoFileClip, CompositeVideoClipclip1 = VideoFileClip("video1.mp4")
clip2 = VideoFileClip("video2.mp4")# 將兩個視頻疊加在一起
final_clip = CompositeVideoClip([clip1, clip2])# 導出疊加后的視頻
final_clip.write_videofile("combined_video.mp4")
4.1.3 高級音頻處理和混音
4.1.3.1 音頻混音

通過pydub庫,你可以進行更高級的音頻處理,包括混音。以下是一個將兩個音頻文件混合的實例代碼:

from pydub import AudioSegmentaudio1 = AudioSegment.from_file("audio1.wav", format="wav")
audio2 = AudioSegment.from_file("audio2.mp3", format="mp3")# 將兩個音頻文件混合
mixed_audio = audio1.overlay(audio2)# 導出混合后的音頻文件
mixed_audio.export("mixed_output.mp3", format="mp3")
4.1.3.2 音頻剪輯和拼接

通過pydub庫,你可以對音頻進行更精細的剪輯和拼接。以下是一個將兩個音頻文件拼接在一起的實例代碼:

from pydub import AudioSegmentaudio1 = AudioSegment.from_file("audio1.wav", format="wav")
audio2 = AudioSegment.from_file("audio2.mp3", format="mp3")# 將兩個音頻文件拼接在一起
concatenated_audio = audio1 + audio2# 導出拼接后的音頻文件
concatenated_audio.export("concatenated_output.mp3", format="mp3")

通過這些高級的例子,我們展示了使用pydub和moviepy庫進行音視頻合成的更多功能,包括添加背景音樂、視頻疊加和混合,以及高級音頻處理和拼接。這使得這兩個庫成為處理復雜音視頻場景的理想選擇。

4.2 音頻分析與可視化

4.2.1 使用librosa和matplotlib進行音頻可視化
  • 波形圖和頻譜圖展示
import matplotlib.pyplot as pltplt.figure(figsize=(12, 8))plt.subplot(2, 1, 1)
librosa.display.waveshow(y, sr=sr)plt.subplot(2, 1, 2)
librosa.display.specshow(chroma, y_axis='chroma', x_axis='time')plt.show()
  • 音頻特征提取
tempo, beat_frames = librosa.beat.beat_track(y=y, sr=sr)
4.2.2 使用librosa和matplotlib進行高級音頻分析
4.2.2.1 節奏分析與圖示

librosa庫不僅提供了基本的音頻可視化功能,還支持更高級的音頻分析。以下是一個使用librosa進行節奏分析和可視化的實例代碼:

import librosa.display
import matplotlib.pyplot as plty, sr = librosa.load('audio_file.wav')# 節奏分析
tempo, beat_frames = librosa.beat.beat_track(y=y, sr=sr)# 繪制波形圖和節奏圖
plt.figure(figsize=(12, 8))plt.subplot(2, 1, 1)
librosa.display.waveshow(y, sr=sr)plt.subplot(2, 1, 2)
beat_times = librosa.frames_to_time(beat_frames, sr=sr)
librosa.display.specshow(librosa.feature.chroma_stft(y, sr=sr), y_axis='chroma', x_axis='time')
plt.vlines(beat_times, 0, 12, colors='r', linestyle='--', linewidth=2, alpha=0.5)plt.show()
4.2.2.2 音頻譜圖細節展示

librosa庫還允許你對音頻進行更詳細的頻譜分析。以下是一個展示音頻譜圖細節的實例代碼:

import librosa.display
import matplotlib.pyplot as plty, sr = librosa.load('audio_file.wav')# 計算短時傅里葉變換(STFT)
D = librosa.amplitude_to_db(librosa.stft(y), ref=np.max)# 繪制音頻譜圖的細節
plt.figure(figsize=(12, 8))librosa.display.specshow(D, sr=sr, x_axis='time', y_axis='log')
plt.colorbar(format='%+2.0f dB')plt.title('Spectrogram (log scale)')
plt.show()

通過這些例子,我們展示了使用librosa和matplotlib進行音頻可視化和分析的更高級功能,包括節奏分析、波形圖和音頻譜圖的細節展示。這使得librosa成為處理音頻數據的強大工具。

總結

本文深入探討了Python中豐富的音視頻處理庫和工具,涵蓋了音頻和視頻處理的各個方面。我們從基礎的庫如pydub、soundfile、librosa,到專注于視頻處理的庫如moviepy、OpenCV、imageio-ffmpeg,逐一介紹了它們的概述、核心功能,并提供了詳細的實例代碼。

在音頻處理方面,我們了解了如何使用pydub進行音頻格式轉換、切割和合并,利用soundfile庫實現高性能音頻讀取和寫入,以及通過librosa庫進行音頻特征提取和節奏分析。

在視頻處理方面,我們探討了moviepy庫的視頻剪輯和特效添加功能,展示了OpenCV庫的視頻捕獲和幀處理,介紹了imageio-ffmpeg庫處理更多視頻格式和編解碼選項的優勢。

綜合應用部分展示了如何使用pydub和moviepy進行音視頻合成,以及高級特效的運用,包括添加背景音樂、視頻疊加和混合,以及高級音頻處理和拼接。

最后,我們通過librosa和matplotlib展示了如何進行音頻可視化和高級音頻分析,包括波形圖、頻譜圖、節奏分析等。

通過學習本文,讀者將獲得全面的音視頻處理知識,能夠更加靈活地運用這些工具來滿足各種音視頻處理需求。Python的音視頻處理領域在不斷創新和發展,期待讀者能夠在未來的項目中充分發揮所學,創造出更加引人入勝的音視頻作品。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/166252.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/166252.shtml
英文地址,請注明出處:http://en.pswp.cn/news/166252.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

SQL Server Profiler基礎使用

文章目錄 SQL Server Profiler基礎使用簡介如何打開直接打開Microsoft SQL Server Management Studio工具欄打開 配置跟蹤新建跟蹤跟蹤屬性配置常規配置事件選擇 啟動跟蹤跟蹤時執行腳本跟蹤記錄 暫停跟蹤停止跟蹤 SQL Server Profiler基礎使用 簡介 一個圖形界面工具&#x…

逆矩陣相關性質與例題

1.方陣的行列式:就是將方陣中的每一個元素轉換至行列式中。 1.性質一:轉置方陣的行列式等于轉置前的行列式。(對標性質:行列式與它的轉置行列式相等) 2.性質二:|ka||a|*k的n次方,n為方陣階數。 …

芯片設計—低功耗isolation cell

(一)低功耗isolation cell的目的 低功耗架構設計需要前后端拉通規劃,前端設計有PMU功耗管理單元,比如A模塊電壓常開,B模塊電壓可關斷,那么請思考,當B模塊關斷電壓后,B模塊輸出到A模…

PDF控件Spire.PDF for .NET【轉換】演示:將在 C#/VB.NET 中將 PDF 轉換為 PCL

本文我們將演示如何通過調用 Spire.PDF 提供的方法 PdfDocument.SaveToStream() 將 PDF 頁面轉換為 HTML、Word、SVG、XPS、PDF 并將它們保存到流中。并且從Spire.PDF版本4.3開始,它新支持轉換定義范圍的PDF頁面并將其保存到流中。 Spire.Doc 是一款專門對 Word 文…

精益制造中的周轉箱和工具柜優勢

制造業(Manufacturing industry)是指機械工業時代利用某種資源(物料、能源、設備、工具、資金、技術、信息和人力等),按照市場要求,通過制造過程,轉化為可供人們使用和利用的大型工具、工業品與…

大語言模型概述(二):基于亞馬遜云科技的研究分析與實踐

上期介紹了大語言模型的定義和發展歷史,本期將分析基于亞馬遜云科技的大語言模型相關研究方向,以及大語言模型的訓練和構建優化。 大語言模型研究方向分析 Amazon Titan 2023 年 4 月,亞馬遜云科技宣布推出 Amazon Titan 大語言模型。根據…

redis運維(十七)事務

一 redis事務 事務核心參考 ① 基礎概念 1、場景引入核心:通過現象思考原因? 2、事務的概念 3、事務四大特性說明: redis只具備部分特性 重點1: 原子性和一致性 重點2: 隔離性和持久性 ② redis的事務 1、基礎鋪墊備注&…

runapi的學習記錄

安裝地址 git clone https://github.com/star7th/showdoc.git 默認賬號與密碼 showdoc 123456 首頁 訪問地址:http://192.168.51.2:4042/web/#/ 進入ShowDoc首頁 登錄showdoc文檔系統 http://192.168.51.2:4042/web/#/user/login 默認賬號密碼showdoc/12345…

unity Terrain 性能問題

在實踐過程中unity發生進入場景GPU爆顯存的情況,經過調查發現是使用Terrain造成的問題,這個問題在使用一個Terrain的時候并不會發生,但是在使用多個時會發生。 似乎在使用過程中Terrain會直接把Terrain的整個地圖加載,造成移動設…

? 一文帶你了解多文件混淆加密

?🔒 一文帶你了解多文件混淆加密 目錄 🔒 一文帶你了解 JavaScript 多文件混淆加密 ipaguard加密前 ipaguard加密后 ? 🔒 一文帶你了解 JavaScript 多文件混淆加密 JavaScript 代碼多文件混淆加密可以有效保護源代碼不被他人輕易盜取。…

關閉vscode打開的本地服務器端口

vscode開了本地的一個端口“8443”當本地服務器端口,然后隨手把VScode一關,后來繼續做發現8443端口已經被占用了。 ??原來,即便關閉了編譯器VScode,服務器依然是被node.exe運行著的。那這個端口怎么才能關掉呢? ??…

Kotlin基礎——Lambda和函數式編程

Lambda 使用 { } 定義Lamba,調用run運行 run { println(1) }更常用的為 { 參數 -> 操作 },還可以存儲到變量中,把變量作為普通函數對待 val sum { x: Int, y: Int -> x y } println(sum(1, 2))maxBy()接收一個Lambda,傳…

EXIT外部中斷 HAL庫+cubeMX

一.cubeMX外部中斷配置 1.系統內核 2.中斷管理 3.選擇搶占優先級和響應優先級,共有5個等級,在這里就使用庫函數編寫代碼時最常用的2位搶占優先級2位響應優先級。 4.勾選使能選項,后面的兩個零,第一個代表搶占優先級的等級&#xf…

用于計算機屏幕安全攝像頭系統:Screen Anytime Crack

Screen Anytime 是一款軟件,旨在自動將整個用戶會話或 PC/服務器/VM/Kiosk 的 /RDP/Citrix/RemoteApp 會話的屏幕活動記錄到視頻日志文件中,以用于記錄、審核和監控目的。通過重播其高度壓縮的視頻,您可以輕松回顧單臺計算機或一組服務器/PC …

基于C#實現并查集

一、場景 有時候我們會遇到這樣的場景,比如:M{1,4,6,8},N{2,4,5,7},我的需求就是判斷{1,2}是否屬于同一個集合,當然實現方法有很多,一般情況下,普通青年會做出 O(MN)的復雜度,那么有沒有更輕量級的復雜度呢…

Vatee萬騰科技的獨特力量:Vatee數字時代創新的新視野

在數字化時代的浪潮中,Vatee萬騰科技以其獨特而強大的創新力量,為整個行業描繪了一幅嶄新的視野。這不僅是一場科技創新的冒險,更是對未來數字時代發展方向的領先探索。 Vatee萬騰將創新視為數字時代發展的引擎,成為推動行業向前的…

ubuntu 安裝python3.13

列出 /usr/bin/ 目錄下所有以 python 開頭的文件和目錄 ls /usr/bin/python* 添加Python軟件源。您可以通過以下命令將Python的軟件源添加到您的系統中 sudo add-apt-repository ppa:deadsnakes/ppa 然后運行以下命令以更新軟件包列表: sudo apt-get update 安…

vue每個階段的生命周期做了什么

Vue 實例的生命周期可以分為創建階段、掛載階段、更新階段和銷毀階段。下面是每個階段具體干了什么的說明和對應的代碼示例: 創建階段 beforeCreate: 此階段在實例初始化之后,數據觀測 (data observer) 和 event/watcher 事件配置之前被調用…

Spring AOP 底層原理

Spring AOP 底層原理 aop 底層是采用動態代理機制實現的:接口實現類 (1)如果要代理的對象,實現了某個接口,那么 Spring AOP 會使用 JDK Proxy,去創建代理對象。 (2)沒有實現接口的對…

下一代ETL工具:微服務架構的全新數據集成平臺

當前對于大型企業來說數據的整合和加工變得越來越重要。隨著業務需求的不斷增長,企業數據量越來越大,數據管道越來越多,現有的ETL(抽取、轉換、加載)工具已不再滿足實時、高性能和微服務架構等現代化需求。因此&#x…