
如何將影片分割成幀,然後將其與音訊重新組合?
我正在使用這個:
要提取幀: ffmpeg -i "video_path" frame%04d.png
擷取音訊: ffmpeg -i video_path -vn -ar 44100 -ac 2 -ab 192k -f mp3 audio_path_output
重新組裝: ffmpeg -i img%04d.png -i "audio_path" -c:v libx264 -r 25 -pix_fmt yuv420p -c:a copy -shortest "video_path_output"
答案1
若要將影片分割成幀,然後將其與音訊重新組合,可以使用 ffmpeg 命令列工具。
要從影片中提取幀,可以使用以下命令:
ffmpeg -i "video_path" frame%04d.png
此命令將從影片中提取幀並將它們保存為單獨的圖像檔案。輸出檔案名稱%04d
中的 指定訊框編號,並附有前導零以確保檔案正確排序。
要從視頻中提取音頻,可以使用以下命令:
ffmpeg -i video_path -vn -ar 44100 -ac 2 -ab 192k -f mp3 audio_path_output
此命令將從影片中提取音訊並將其儲存為單獨的 MP3 檔案。
要從幀和音頻重新組合視頻,可以使用以下命令:
ffmpeg -i img%04d.png -i "audio_path" -c:v libx264 -r 25 -pix_fmt yuv420p -c:a copy -shortest "video_path_output"
該命令將以幀和音訊作為輸入,並將它們重新組合成一個新的視訊檔案。-c:v
和選項-c:a
分別指定用於視訊和音訊的編解碼器。此-r
選項指定幀速率,該-pix_fmt
選項指定像素格式。此-shortest
選項可確保輸出視訊與最短輸入(視訊或音訊)的持續時間相同。
若要將三個命令合併到一個腳本中,您可以使用以下 shell 腳本:
# Extract frames from video
ffmpeg -i "video_path" frame%04d.png
# Extract audio from video
ffmpeg -i video_path -vn -ar 44100 -ac 2 -ab 192k -f mp3 audio_path_output
# Reassemble video from frames and audio
ffmpeg -i img%04d.png -i "audio_path" -c:v libx264 -r 25 -pix_fmt yuv420p -c:a copy -shortest "video_path_output"
您可以將此腳本儲存到檔案(例如 split_and_reassemble.sh)並使用以下命令執行它:
bash split_and_reassemble.sh
這將按順序執行三個命令,從視頻中提取幀,提取音頻,然後從幀和音頻重新組合視頻。