1

連続して名前が付けられた一連の 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

これを修正するにはどうすればよいですか?

4

0 に答える 0