GStreamer Time Lapse Video:第一帧中的JPEG序列不连续

时间:2017-10-05 00:20:08

标签: ios video gstreamer macos-high-sierra

以下是我用于从一组按顺序命名的JPEG文件创建时间推移视频的代码:

home="/home/pi/webcam"
log="$home/webcam.log"
file="$home/arch/test/kamvideo.mp4" ## name of video file to create
vpath="$home/arch/test/" ## path to video files
rmpath="$home/arch/test/*.jpg" ## path to JPEG images for deletion
testpath="$home/arch/test/" ## path to test directory
spath="$home/arch/test/image_%03d.jpg"  ## source files for video
now=$(date +%Y%m%d) ## current date
apath="$home"/video/"$now".mp4 ## name of today's video file
mfslocation="$home"/arch/test/image_%03d.jpg
fslocation="$home"/arch/test/kamvideo.mp4


gst-launch-1.0 \
    -e multifilesrc location="$mfslocation" \
    ! image/jpeg, framerate=10/1 \
    ! decodebin ! queue ! videoscale \
    ! video/x-raw, width=640, height=480 \
    ! progressreport name=progress \
    ! omxh264enc target-bitrate=1200000 control-rate=variable \
    ! video/x-h264,profile=high\
    ! h264parse \
    ! mp4mux \
    ! filesink location="$fslocation"

文件如下所示:

-rw-r--r-- 1 pi pi 241527 Oct  6 04:12 image_000.jpg
-rw-r--r-- 1 pi pi 238558 Oct  6 04:16 image_001.jpg
-rw-r--r-- 1 pi pi 238489 Oct  6 04:20 image_002.jpg
-rw-r--r-- 1 pi pi 239035 Oct  6 04:24 image_003.jpg
-rw-r--r-- 1 pi pi 240861 Oct  6 04:28 image_004.jpg
…

这已经好几年了,但最近我注意到视频中的第一帧不是序列中的第一个JPEG。通常您不会注意到这一点,除了在Apple的新操作系统版本(High Sierra和iOS 11)下,视频将无法播放,因为第一帧的时间戳位于第二帧的时间戳之后。

视频在VLC和当前版本之前的操作系统版本中运行良好。

视频的第一帧似乎是从JPEG文件集中随机选择的。

示例视频位于:kamvideo.mp4

我该如何解决这个问题?

0 个答案:

没有答案