開發者的多媒體處理筆記 (Multimedia Tips)
2025-12-29
筆電日常生活中各式多媒體處理的便利工具以及常用指令。
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'