ffmpeg:来自图像的视频 - 处理零长度图像文件
ffmpeg: video from images - handling a zero length image file
我有一个 shell 脚本,它使用 ffmpeg 从网络摄像头图像创建延时视频。通常情况下,它工作得很好:
/usr/bin/ffmpeg -loglevel info -framerate 4 \
-pattern_type glob -i $ipath/'*.jpg' \
-c:v libx264 -crf 30 -y -pix_fmt yuv420p $temp &>>$log
但是如果图像是零长度文件,这会令人窒息:
-rw-r--r-- 1 pi pi 156636 Sep 29 04:35 image_022.jpg
-rw-r--r-- 1 pi pi 156533 Sep 29 04:35 image_023.jpg
-rw-r--r-- 1 pi pi 159302 Sep 29 04:35 image_024.jpg
-rw-r--r-- 1 pi pi 0 Sep 29 04:35 image_025.jpg
-rw-r--r-- 1 pi pi 157055 Sep 29 04:35 image_026.jpg
-rw-r--r-- 1 pi pi 156851 Sep 29 04:35 image_027.jpg
-rw-r--r-- 1 pi pi 155793 Sep 29 04:35 image_028.jpg
-rw-r--r-- 1 pi pi 160647 Sep 29 04:35 image_029.jpg
在这种情况下,视频仅包含长度为零的 JPEG 帧。
我意识到我可以测试每个网络摄像头图像的文件长度,但必须有更简单、更有效的方法。
有吗?
FFmpeg 将 在遇到大小为零的文件时终止读取图像序列。没有继续的选项。
将上一张图像复制到大小为零的文件中。
我有一个 shell 脚本,它使用 ffmpeg 从网络摄像头图像创建延时视频。通常情况下,它工作得很好:
/usr/bin/ffmpeg -loglevel info -framerate 4 \
-pattern_type glob -i $ipath/'*.jpg' \
-c:v libx264 -crf 30 -y -pix_fmt yuv420p $temp &>>$log
但是如果图像是零长度文件,这会令人窒息:
-rw-r--r-- 1 pi pi 156636 Sep 29 04:35 image_022.jpg
-rw-r--r-- 1 pi pi 156533 Sep 29 04:35 image_023.jpg
-rw-r--r-- 1 pi pi 159302 Sep 29 04:35 image_024.jpg
-rw-r--r-- 1 pi pi 0 Sep 29 04:35 image_025.jpg
-rw-r--r-- 1 pi pi 157055 Sep 29 04:35 image_026.jpg
-rw-r--r-- 1 pi pi 156851 Sep 29 04:35 image_027.jpg
-rw-r--r-- 1 pi pi 155793 Sep 29 04:35 image_028.jpg
-rw-r--r-- 1 pi pi 160647 Sep 29 04:35 image_029.jpg
在这种情况下,视频仅包含长度为零的 JPEG 帧。
我意识到我可以测试每个网络摄像头图像的文件长度,但必须有更简单、更有效的方法。
有吗?
FFmpeg 将 在遇到大小为零的文件时终止读取图像序列。没有继续的选项。
将上一张图像复制到大小为零的文件中。