我正在试图找出如何指定要转换为视频的特定图像列表.我知道我们可以这样做:
ffmpeg -i image_04%d.png
Run Code Online (Sandbox Code Playgroud)
这将从文件夹中选择与序列匹配的所有图像.但是在我的情况下,图像文件不一定按照其名称暗示的顺序.原因是订单保留在数据库中,文件名本质上是数据库行ID.
我怎样才能指定正确的输入序列?我基本上是从代码调用ffmpeg而不是从命令行调用.因此,对代码的任何改变想法也受到欢迎.
谢谢!
这是凯文的想法中的一个脚本,对我有用.您可能希望替换文件名模式(shot*.png)和输出文件名movie.mp4.完成后脚本将删除所有frame_ ...文件.
# script to create movie from multiple png files
# taken in choronoligcal order
# start at 0
count=0
# take all files named shot - something ordered by date
for f in `ls -rt shot*.png`
do
# get the index in 0000 format
printf -v counts "%04d" $count
# link file to a frame_0000 named symbolic link
ln -s $f frame_$counts.png
# increment counter
count=`expr $count + 1`
done
# create movie
# slowed down by factor 5
# ffmpeg -f image2 -i frame_%04d.png -vcodec mpeg4 -vf "setpts=5*PTS" movie.mp4
ffmpeg -i frame_%04d.png movie.mp4
# remove the links
rm frame_*.png
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2825 次 |
| 最近记录: |