hiroaki
Posts: 2
Joined: Sun Sep 30, 2018 7:04 am

raspivid のオプション --segment と --start が動作しない

Sun Sep 30, 2018 12:43 pm

何かヒントになる情報がないかと思い投稿いたします。

raspivid の出力ファイルを分割するオプション --segment と --start が apt upgrade で動作しなくなります。
Raspberry Pi Zero W に NOOBS 2.7.0を入れてドライブレコーダーのように使っていたのですが、microSDを交換してNOOBS Lite 2.8をインストール後、upgrade すると --segment が正常に動作しなくなりました。
問題は以下の症状です。(不要なオプションは外した状態でテストしています)

raspivid -t 5000 --segment 2000 --start 23 -o file%04d.h264

出力ファイル名 file%04d.h264 、初期値は23(file0023.h264)で2秒毎に番号をインクリメントし、5秒間録画することを期待します。
Raspbianのインストール、初期設定直後はほぼ正常に動作します。(ファイルが2つなのは?)

upgrade前の実行結果
-rw-r--r-- 1 pi pi 3843707 9月 30 09:14 file0023.h264
-rw-r--r-- 1 pi pi 6013999 9月 30 09:14 file0024.h264

ところが、sudo apt update、sudo apt upgrade の2つを実行すると --segment と --start の動作がおかしくなります。

upgrade後の実行結果
-rw-r--r-- 1 pi pi 6135744 9月 30 10:16 file0030.h264

ファイル名は --start を無視した番号(固定値)で、--segment は無視されます。
いろいろ調べて気付いたこと。
・番号はたまに変わるが、ほぼ同じ番号。
・ファイルを監視していると時々サイズが小さくなるので同じファイルに上書きしている感じ。
・NOOBS Lite 2.7 でも upgradeすると同じ症状になるので元は upgrade しなかったのかもしれません。記憶が曖昧で申し訳ありません。
・apt upgrade で raspivid のファイルは更新されます。
 upgrade前:-rwxr-xr-x 1 root root 83256 3月 28 2018 /opt/vc/bin/raspivid
 upgrade後:-rwxr-xr-x 1 root root 83280 8月 18 00:25 /opt/vc/bin/raspivid

今は見たいファイルをsamba経由で取り出す程度なのでNOOBS Lite 2.8 の upgrade しない状態で使うことにしたのですが、気になるので質問させていただきました。

使い方が間違っているとか他に確認すべき点などアドバイスいただけると幸いです。

hiroaki
Posts: 2
Joined: Sun Sep 30, 2018 7:04 am

Re: raspivid のオプション --segment と --start が動作しない

Thu Oct 04, 2018 3:09 pm

原因が分かりました。upgradeでraspividの仕様が変わっています。
基本的な内容で恐縮ですが変更履歴のようなものは何処を見れば良いのか分かっておらず、githubを
眺めてたら以下のPull requestsを発見しました。

Segment timestamp #479
https://github.com/raspberrypi/userland/pull/479

これはraspividの--segmentを拡張してタイムスタンプを使えるようにする提案でした。
試してみたところ、この内容が反映され、ファイルフォーマットに%cや%sが使えるようになってました。

こんなことが出来ます。(抜粋)
%c: Thu Oct 4 20:32:11 JST 2018
%s: 1538652731
%Y: 2018 ←年
%y: 18 ←年
%m: 10 ←月
%H: 20 ←時
%M: 35 ←分
%S: 02 ←秒
%F: 2018-10-02
%R: 20:35
%T: 20:35:02

その中で%dと%uだけが従来オプションとの配慮でタイムスタンプに変換せず--segmentでファイル分割の
セグメント番号に使えるのですが、%04dだと新機能のタイムスタンプになります。
(番号がたまに変わると思ってたのが「日」でした)
%d : 1,2,3,4,5,6,7 ←OK
%04d: 0001,0002,0003 ←NG(「日」になってしまうので10月4日なら常に0004になる)

--startに桁数指定で%04dが使えないのは残念ですが原因と新機能が分かったので、ここは発想を
変えて新機能のタイムスタンプを含むファイル名にすることを考えてみようと思います。

raspivid -t 5000 --segment 2000 -o %Y%02m%02d-%H%M%S.h264

出力されるファイル
-rw-r--r-- 1 pi pi 4238468 10月 4 20:44 20181004-224439.h264
-rw-r--r-- 1 pi pi 5629405 10月 4 20:44 20181004-224441.h264

ドライブレコーダーなので撮影日時はraspividの -a オプションで画面に追加していましたが
ファイル名も撮影日時になっている方が便利です。

同じことで悩む方の目に触れた際に何かの参考になれば幸いです。

Return to “日本語”