開發者的多媒體處理筆記 (Multimedia Tips)

2025-12-29

筆電日常生活中各式多媒體處理的便利工具以及常用指令。

logo

Youtube 相關操作

💡安裝工具

# Windows
winget install yt-dlp

# Linux
sudo add-apt-repository ppa:tomtomtom/yt-dlp    # Add ppa repo to apt
sudo apt update                                 # Update package list
sudo apt install yt-dlp                         # Install yt-dlp

# Update 
yt-dlp -U

# UV
uv tool install yt-dlp
uv tool upgrade yt-dlp

💡下載 Youtube 影片

yt-dlp youtubeUrl

# challenge solving
yt-dlp --remote-components ejs:github youtubeUrl

💡下載為音樂 (預設是 m4a,但有時候加了參數仍是 m4a)

yt-dlp youtubeUrl -x --audio-format mp3

其他下載輔助工具 m3u8 格式,使用 Chrome Extension: Video DownloadHelper
https://chromewebstore.google.com/detail/video-downloadhelper/lmjnegcaeklhafolokijcfjliaokphfk

💡取得 Youtube 播放清單的所有影片連結

yt-dlp --flat-playlist --print "%(title)s\t%(url)s" "youtubePlaylistUrl"

影片處理

💡影片取聲音檔,壓縮及控制檔案大小

ffmpeg -i input.mp4 -vn -c:a libmp3lame -b:a 32k -ac 1 -ar 24000 -f segment -segment_time 4200 output_%03d.mp3

其中 segment_time 目前是 70 分鐘,可以再進一步縮小,以確保切割後的檔案符合所需條件。

💡影片取影格,移除連續重複

ffmpeg -i input.mp4 -vf "fps=1/5,mpdecimate=hi=64*200:lo=64*50:frac=0.33" -vsync vfr subfolder/output_%05d.jpg

💡確認影片的編碼格式

ffprobe file.mp4
ffprobe file.webm

💡影片轉檔為 h.264 編碼格式

ffmpeg -err_detect ignore_err -fflags +discardcorrupt ^
-i yellow.webm ^
-c:v h264_nvenc -profile:v high -level 4.1 ^
-rc vbr -cq 19 -preset p5 ^
-pix_fmt yuv420p -r 24000/1001 ^
-c:a aac -b:a 128k ^
yellow.mp4

💡影片剪輯

需要 GUI 輔助的剪輯工作,使用 Microsoft Clipchamp
簡易剪輯直接使用 ffmpeg,使用重新編碼的方式,較費時但避免影格對齊等問題。

ffmpeg -i input.mp4 -ss 00:00:00 -to 00:20:00 -c:v h264_nvenc -c:a aac ouput.mp4

合成圖片及音訊為影片

ffmpeg -r 2 -loop 1 -i ai.png -f concat -safe 0 -i inputs.txt -c:v h264_nvenc -preset p1 -tune ll -rc constqp -qp 28 -c:a copy -shortest -pix_fmt yuv420p output.mp4

多個音訊檔案要儲存於 inputs.txt 中,格式如下:

file 'audio1.m4a'
file 'audio2.m4a'
file 'audio3.m4a'