通过ffmpeg从jpg转换为mp4

Sam*_*Sam 8 mp4 jpeg ffmpeg

我有320 jpg(320x574)图像,我用2004 fps录制它们.我想制作一个.mp4视频.我在cmd(win7)中运行了以下代码,它只是制作了一个jpg编号为320的视频,如果我去了这个('*.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
Run Code Online (Sandbox Code Playgroud)

Ric*_*321 9

根据您的文件名,您需要:

ffmpeg -f image2 -i Path/To/File/filename%3d.jpg test.avi
Run Code Online (Sandbox Code Playgroud)

filename%3d会是命名的文件:filename000.jpg,filename001.jpg,filename002.jpg等.

请参阅FFmpeg image2 demuxer示例


Poo*_*dav 7

您还有其他选择,例如:

  • 如果 -framerate 和 -r 都设置帧速率,它们之间有什么区别? (2认同)

小智 6

我可以在这里给你看一个例子,

ffmpeg -f image2 -r 60 -i path/filename%03d.jpg -vcodec libx264 -crf 18  -pix_fmt yuv420p test.mp4
Run Code Online (Sandbox Code Playgroud)
  • f : 强制格式
  • r : 帧率
  • i:输入文件假设您的文件是filename001.jpg, filename002.jpg, ...
  • vcodec : 视频编解码器
  • crf:恒定速率因子(0-51)。17-18 是(几乎)视觉上无损的。见编码/H.264
  • pix_fmt : 像素格式


小智 6

使用cat

最后,我想出了一个解决方案,它是使用 cat 获取 a.mkv然后将其转换为.mp4

导航到包含.jpg文件的文件夹

cat *.jpg | ffmpeg -f image2pipe -i - output.mkv
Run Code Online (Sandbox Code Playgroud)

进而

ffmpeg -i output.mkv -codec copy output.mp4
Run Code Online (Sandbox Code Playgroud)