转换所有图像目录使用的ffmpeg和时间戳以.MP4(Convert all images in d

2019-10-23 01:14发布

我有一个目录.jpgUNIX时间戳格式命名的图像。 我怎么能转换所有图像开始从最早的时间戳到最新的.mp4视频格式?

我发现了一个解决方案,但它使用的增量命名,像image001image002

我将不胜感激任何帮助。 谢谢。

使用aergistal的解决方案,我得到的输出错误:我照你说的,但我得到一个输出误差:

Input #0, concat, from 'list.txt':
Duration: N/A, start: 0.000000, bitrate: N/A
Stream #0:0: Video: mjpeg, yuvj420p(pc, bt470bg/unknown/unknown), 540x405 [SAR 1:1 DAR 4:3], 25 tbr, 25 tbn, 25 tbc
[swscaler @ 0x14751c0] deprecated pixel format used, make sure you did set range correctly
[libx264 @ 0x14b7120] height not divisible by 2 (540x405)
Output #0, mp4, to 'out.mp4':
Stream #0:0: Video: h264, none, q=2-31, 128 kb/s, SAR 1:1 DAR 0:0, 30 fps
Metadata:
  encoder         : Lavc56.26.100 libx264
Stream mapping:
Stream #0:0 -> #0:0 (mjpeg (native) -> h264 (libx264))
Error while opening encoder for output stream #0:0 - maybe incorrect parameters such as bit_rate, rate, width or height

Answer 1:

请在您希望他们使用的格式显示的顺序文件的列表:

file '<path/to/file>'

在Linux上,你可以使用时间戳为了获取文件,并使用该列表:

ls /path/to/*.jpg | sort -V | xargs -I {} echo "file '{}'" > list.txt

sort手册页:

-V,--version排序自然排序文本内(版本)号

示例清单:

file '1.jpg'
file '2.jpg'
file '3.jpg'

然后使用FFmpeg的CONCAT分路器与您的清单:

ffmpeg -r 1/5 -f concat -i list.txt -c:v libx264 -r 25 -pix_fmt yuv420p -t 15 out.mp4


文章来源: Convert all images in directory to .mp4 using ffmpeg and a timestamp order
标签: ffmpeg