use*_*422 132 ffmpeg image slideshow
ffmpeg -r 1/5 -start_number 2 -i img%03d.png -c:v libx264 -r 30 -pix_fmt yuv420p out.mp4
Run Code Online (Sandbox Code Playgroud)
这条线工作正常,但我想从另一个文件夹中的图像创建一个视频文件.我的文件夹中的图像名称是:
img001.jpg
img002.jpg
img003.jpg
...
Run Code Online (Sandbox Code Playgroud)
我怎么能从不同的文件夹输入图像文件?例:C:\mypics
我尝试了这个命令,但只ffmpeg生成了带有第一个图像(img001.jpg)的视频.
ffmpeg -r 1/5 -start_number 0 -i C:\myimages\img%03d.png -c:v libx264 -r 30 -pix_fmt yuv420p out.mp4
Run Code Online (Sandbox Code Playgroud)
kha*_*han 134
如果您的视频不能正常显示帧如果遇到问题,比如第一个图像跳过或仅显示一个框架,然后用fps视频过滤器,而不是-r的输出帧率
ffmpeg -r 1/5 -i img%03d.png -c:v libx264 -vf fps=25 -pix_fmt yuv420p out.mp4
Run Code Online (Sandbox Code Playgroud)
或者,可以将格式视频过滤器添加到过滤链以替换-pix_fmt yuv420p,如"fps = 25,format = yuv420p".此方法的优点是您可以控制首先使用哪个过滤器
ffmpeg -r 1/5 -i img%03d.png -c:v libx264 -vf "fps=25,format=yuv420p" out.mp4
Run Code Online (Sandbox Code Playgroud)
我测试了以下参数,它对我有用
"e:\ffmpeg\ffmpeg.exe" -r 1/5 -start_number 0 -i "E:\images\01\padlock%3d.png" -c:v libx264 -vf "fps=25,format=yuv420p" e:\out.mp4
Run Code Online (Sandbox Code Playgroud)
以下参数也有效,但它总是跳过第一张图像
"e:\ffmpeg\ffmpeg.exe" -r 1/5 -start_number 0 -i "E:\images\01\padlock%3d.png" -c:v libx264 -r 30 -pix_fmt yuv420p e:\out.mp4
Run Code Online (Sandbox Code Playgroud)
从放置在不同文件夹中的图像制作视频
首先将图像路径添加到imagepaths.txt,如下所示.
# this is a comment details https://trac.ffmpeg.org/wiki/Concatenate
file 'E:\images\png\images__%3d.jpg'
file 'E:\images\jpg\images__%3d.jpg'
Run Code Online (Sandbox Code Playgroud)
样本用法如下;
"h:\ffmpeg\ffmpeg.exe" -y -r 1/5 -f concat -safe 0 -i "E:\images\imagepaths.txt" -c:v libx264 -vf "fps=25,format=yuv420p" "e:\out.mp4"
Run Code Online (Sandbox Code Playgroud)
-safe 0参数可防止出现不安全的文件名错误
相关链接
Cir*_*四事件 112
-pattern_type glob
这个很棒的选项使得在许多情况下更容易选择图像.
幻灯片视频每秒一张图片:
ffmpeg -framerate 1 -pattern_type glob -i '*.png' \
-c:v libx264 -r 30 -pix_fmt yuv420p out.mp4
Run Code Online (Sandbox Code Playgroud)
正常速度的视频,每帧一幅图像,30 FPS:
ffmpeg -framerate 1 -pattern_type glob -i '*.png' -i audio.ogg \
-c:a copy -shortest -c:v libx264 -r 30 -pix_fmt yuv420p out.mp4
Run Code Online (Sandbox Code Playgroud)
以下是一些合成测试输入图像:
ffmpeg -framerate 1 -pattern_type glob -i '*.png' -i audio.ogg \
-c:a copy -shortest -c:v libtheora -r 30 -pix_fmt yuv420p out.ogg
Run Code Online (Sandbox Code Playgroud)
生成的图像:如何使用GLUT/OpenGL渲染文件?
GIF生成:https://askubuntu.com/questions/648603/how-to-create-an-animated-gif-from-mp4-video-via-command-line/837574#837574
很容易观察到视频压缩图像序列的方式比ZIP更好,因为它能够使用专门的算法压缩帧:
opengl-rotating-triangle.mp4:340K opengl-rotating-triangle.zip:7.3M 您的图像当然应按字母顺序排序,通常如下:
0001-first-thing.jpg
0002-second-thing.jpg
0003-and-third.jpg
Run Code Online (Sandbox Code Playgroud)
等等.
但请注意,尽管有名称,-glob但这并不像shell Glob模式那样通用,例如:-i '*'失败:https://trac.ffmpeg.org/ticket/3620(显然是因为文件类型是从扩展中推断出来的).
-r 30使-framerate 1视频30 FPS克服像VLC这样的播放器中的低帧速率的错误:VLC冻结用于使用ffmpeg从图像创建的低1 FPS视频因此它重复每帧30次以保持每秒所需的1个图像效果.
也可以看看:
接下来,您还需要:
剪切一些音频以匹配视频长度:使用ffmpeg根据开始和结束时间剪切视频
ffmpeg -framerate 30 -pattern_type glob -i '*.png' \
-c:v libx264 -pix_fmt yuv420p out.mp4
Run Code Online (Sandbox Code Playgroud)添加剪切音频:https://superuser.com/questions/277642/how-to-merge-audio-and-video-file-in-ffmpeg
ffmpeg -framerate 30 -pattern_type glob -i '*.png' \
-i audio.ogg -c:a copy -shortest -c:v libx264 -pix_fmt yuv420p out.mp4
Run Code Online (Sandbox Code Playgroud)测试ffmpeg 3.4.4,vlc 3.0.3,Ubuntu 18.04.
Jos*_*ter 17
对于Google Earth Studio图像特别有用:
ffmpeg -framerate 24 -i Project%03d.png Project.mp4
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
265111 次 |
| 最近记录: |