ffmpeg picture to video

  • video to picture
# 间隔抽帧,-r 25代表每秒保存25帧
ffmpeg -i test.mp4 -r 25 path_to_image/%05d.jpg
# 抽第一帧保存为图片,参数为 -frame:v 1
ffmpeg -i test.mp4 -frames:v 1 test.jpg
  • Sequential picture to video conversion
ffmpeg -f image2 -i dirname/%05d.jpg -vcodec libx264 -r 25 -b:v 5969k test.mp4
# -f image2:			图像转视频
# -i dirname/%05d.jpg:	输入
# -vcodec libx264:		采用264编码
# -r 25:				输出帧率为每秒25帧
# -b:v 5969k:			输出码率
  • Shuffle picture to video
ffmpeg -f image2 -pattern_type glob -i 'output/*.jpg'  -vcodec libx264 -r 5 -b:v 21k test.avi
# -pattern_type glob:glob模式
  • Use the -crf parameter to control the generated video quality
ffmpeg -f image2 -pattern_type glob -i 'output/*.jpg'  -vcodec libx264 -r 5 -crf 10 test.avi
# -crf 10:	高画质
# -crf 23:	平衡大小和画质
# -gp 0:	无损画质
  • txt file list to generate video, similarly you can use grep
cat imagelist.txt | xargs cat | ffmpeg -f image2pipe -i - -vcodec libx264 -r 5 -crf 23 test.avi
# -f image2pipe:管道模式
# -i -:		 输入
  • Block audio
ffmpeg -i demo.mp4 -c copy -an demp_enc.mp4
  • Video capture time slice
ffmpeg -ss 00:03:00 -to 00:04:00 -i test.mp4 -y -f mp4 -vcodec copy -acodec copy -q:v 1 -r 25 output.mp4
# -ss 指定要截取的视频的起始时间。
# -to 指定要截取的视频的终止时间。
# -i 输入文件,这里指的就是视频文件。
# -y 表示无需询问,直接覆盖输出文件(如果有原文件的话)。
# -f 指定输出视频的格式。
# -acodec 指定音频编码格式。copy表示编码格式不发生改变,直接复制原来的编码格式,这样会大大提升速度。
# -vcodec 指定视频编码格式。copy表示编码格式不发生改变,直接复制原来的编码格式,这样会大大提升速度。
# -q:v 1 q是质量,v是视频,v的取值范围是[1, 35],取值1的时候,对应着最佳的视频质量。
# 注意:测试发现把-ss和-to放到-i前面,可以加快处理速度。
  • Splicing video:
ffmpeg -f concat -i filelist.txt -c copy output.mp4

filelist.txt content format:

file '2023-03-06_18_50_00-19_00_00_1.mp4'
file '2023-03-06_19_00_00-19_10_00_1.mp4'

Guess you like

Origin blog.csdn.net/baoxin1100/article/details/128629418