我如何将视频分割成帧,然后将其与音频重新组合?
我正在使用这个:
提取帧: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
这将按顺序执行三个命令,从视频中提取帧,提取音频,然后从帧和音频重新组装视频。