我有320张尺寸为320x574的jpg图片,我用2004 fps记录了它们。我想把它们制作成.mp4视频。我在cmd(win7)中运行了以下代码,但它只制作了320号jpg的视频,如果我使用('*.jpg')而不是320,则不起作用。我真的很感激任何帮助。
ffmpeg -r 1/5 -i C:\data-Sam\320.jpg -c:v libx264 -r 30 -pix_fmt yuv420p C:\data-Sam\out.mp4
我有320张尺寸为320x574的jpg图片,我用2004 fps记录了它们。我想把它们制作成.mp4视频。我在cmd(win7)中运行了以下代码,但它只制作了320号jpg的视频,如果我使用('*.jpg')而不是320,则不起作用。我真的很感激任何帮助。
ffmpeg -r 1/5 -i C:\data-Sam\320.jpg -c:v libx264 -r 30 -pix_fmt yuv420p C:\data-Sam\out.mp4
根据您的文件名,您可能需要:
ffmpeg -f image2 -i /path/to/file/image%3d.jpg test.avi
image%3d
是针对文件名为image000.jpg
、image001.jpg
、image002.jpg
等的文件。
如果您的文件名为image0.jpg
、image1.jpg
、image2.jpg
等,则应使用/path/to/file/image%d.jpg
。
ls
命令的文件顺序适合您,您也可以使用-pattern_type glob -i '*.jpg'
。 - scai我可以在这里给你展示一个例子,
ffmpeg -f image2 -r 60 -i path/filename%03d.jpg -vcodec libx264 -crf 18 -pix_fmt yuv420p test.mp4
filename001.jpg
, filename002.jpg
, ...-r = set frame rate
ffmpeg -framerate 10 -i Path/To/File/filename%3d.jpg -r 5 -y Path/To/File/test.mp4
cat
最终,我想出了一个解决方案,就是使用 cat 命令获取一个 .mkv
文件,然后将其转换为 .mp4
格式。
导航到包含 .jpg
文件的文件夹。
cat *.jpg | ffmpeg -f image2pipe -i - output.mkv
然后
ffmpeg -i output.mkv -codec copy output.mp4
最主要的文件夹是 ffmpeg.exe,Your_files 文件夹和 Result 文件夹。
在 Your_files 文件夹中上传一系列图片。
Bat 文件将按名称顺序对它们进行排序。
制作好的视频将会在 Result 文件夹中。
echo off
color a
set a="Your_files\*.jpg"
set b="Result\video.mp4"
set c=ffmpeg
set f=-c:v libx264 -pix_fmt yuv420p -r 30 -crf 20
set tmp="Result\list.tmp"
for %%f in (%a%) do (@echo file 'file:%cd%\%%f' >> %tmp%)
%c% -y -f concat -safe 0 -i %tmp% %f% %b%
cd /d Result
del /f /q list.tmp
exit
-c:v libx264 - 我们将使用x264编解码器以MP4格式进行编码。
-loglevel 16 – 显示所有错误,包括可以恢复的错误。
-r 30 – 帧速率。它在所有过滤之后生效,但在编码视频流之前生效。
-crf 20 – 恒定比特率因子(CRF)是一种质量设置(和速率控制)。取值范围为0到51,较低的值会产生更好的质量,但文件大小也会增加。较高的值意味着更多的压缩,但在某个点上你会注意到质量下降。默认值为23。
"file%d.jpg"
cmd.exe
使用 %PATH%
模拟真实 shell 中使用的 $PATH
,因此会与 file%d.jpg
混淆。