連続して名前が付けられた一連の 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 の新しい OS リリース (High Sierra および iOS 11) では、最初のフレームのタイムスタンプが 2 番目のフレームのタイムスタンプよりも後であるため、ビデオは再生されません。
ビデオは、VLC および現在のバージョンより前の OS バージョンで正常に再生されます。
ビデオの最初のフレームは、一連の JPEG ファイルからランダムに選択されているようです。
サンプル動画はこちら: kamvideo.mp4
これを修正するにはどうすればよいですか?