2020年4月26日日曜日

FFmpeg Webカメラからの録画とRTMP配信

FFmpegについてはWindowsで使用しています。

FFmpegのインストールについては、以下の記事を参考にしてください。
早送りのスムーズな動画を作りたい(ffmpeg)

vfwcapとdshowのどちらでもキャプチャ可能ですが、vfwcapは古い形式だそうです。

1.vfwcap

使用するカメラを選択します

ffmpeg -y -f vfwcap -i list


ドライバー0を使用する場合、「-i」パラメータに「0」を指定します。
ffmpeg -f vfwcap -i 0 output.avi

2.dshow

使用するカメラを選択します
ffmpeg -list_devices true -f dshow -i dummy



デバイス名に日本語が含まれると、下の図のように文字化けする場合があります。
その場合はコマンドプロンプトで以下を先に実行して文字コードをUTF-8にします。
chcp 65001


実施後はShift-Jisに戻しておいたほうがいいかな
chcp 932

上記の例のデバイスで録画する場合以下のようになります。
videoとaudioは自身の設定に変更が必要です。
録画を停止するには「Q」キーを押下します。

ffmpeg -f dshow -i video="BUFFALO BSW20KM15 USB Camera":audio="デスクトップ マイク (BUFFALO BSW20KM15 USB Camera)" sample.avi


3.カメラの映像をRTMP配信

上記の例のデバイスで録画する場合以下のようになります。
videoとaudioは自身の設定に変更が必要です。
録画を停止するには「Q」キーを押下します。

ffmpeg -f dshow -i video="BUFFALO BSW20KM15 USB Camera":audio="デスクトップ マイク (BUFFALO BSW20KM15 USB Camera)" -f flv rtmp://送付先アドレス

実際には画質などの設定をすべきですが、最低限はこんな感じで動くと思います。

2020年4月25日土曜日

FFmpeg Pixel format一覧

FFmpegについてはWindowsで使用しています。
FFmpegのインストールについては、以下の記事を参考にしてください。
早送りのスムーズな動画を作りたい(ffmpeg)

-pix_fmtで指定できるやつの一覧

ffmpeg -pix_fmts

で取得可能です。


以下は出力例

Pixel formats:
I.... = Supported Input  format for conversion
.O... = Supported Output format for conversion
..H.. = Hardware accelerated format
...P. = Paletted format
....B = Bitstream format
FLAGS NAME            NB_COMPONENTS BITS_PER_PIXEL
-----
IO... yuv420p 3 12
IO... yuyv422 3 16
IO... rgb24 3 24
IO... bgr24 3 24
IO... yuv422p 3 16
IO... yuv444p 3 24
IO... yuv410p 3 9
IO... yuv411p 3 12
IO... gray 1 8
IO..B monow 1 1
IO..B monob 1 1
I..P. pal8 1 8
IO... yuvj420p 3 12
IO... yuvj422p 3 16
IO... yuvj444p 3 24
IO... uyvy422 3 16
..... uyyvyy411 3 12
IO... bgr8 3 8
.O..B bgr4 3 4
IO... bgr4_byte 3 4
IO... rgb8 3 8
.O..B rgb4 3 4
IO... rgb4_byte 3 4
IO... nv12 3 12
IO... nv21 3 12
IO... argb 4 32
IO... rgba 4 32
IO... abgr 4 32
IO... bgra 4 32
IO... gray16be 1 16
IO... gray16le 1 16
IO... yuv440p 3 16
IO... yuvj440p 3 16
IO... yuva420p 4 20
IO... rgb48be 3 48
IO... rgb48le 3 48
IO... rgb565be 3 16
IO... rgb565le 3 16
IO... rgb555be 3 15
IO... rgb555le 3 15
IO... bgr565be 3 16
IO... bgr565le 3 16
IO... bgr555be 3 15
IO... bgr555le 3 15
..H.. vaapi_moco 0 0
..H.. vaapi_idct 0 0
..H.. vaapi_vld 0 0
IO... yuv420p16le 3 24
IO... yuv420p16be 3 24
IO... yuv422p16le 3 32
IO... yuv422p16be 3 32
IO... yuv444p16le 3 48
IO... yuv444p16be 3 48
..H.. dxva2_vld 0 0
IO... rgb444le 3 12
IO... rgb444be 3 12
IO... bgr444le 3 12
IO... bgr444be 3 12
IO... ya8 2 16
IO... bgr48be 3 48
IO... bgr48le 3 48
IO... yuv420p9be 3 13
IO... yuv420p9le 3 13
IO... yuv420p10be 3 15
IO... yuv420p10le 3 15
IO... yuv422p10be 3 20
IO... yuv422p10le 3 20
IO... yuv444p9be 3 27
IO... yuv444p9le 3 27
IO... yuv444p10be 3 30
IO... yuv444p10le 3 30
IO... yuv422p9be 3 18
IO... yuv422p9le 3 18
IO... gbrp 3 24
IO... gbrp9be 3 27
IO... gbrp9le 3 27
IO... gbrp10be 3 30
IO... gbrp10le 3 30
IO... gbrp16be 3 48
IO... gbrp16le 3 48
IO... yuva422p 4 24
IO... yuva444p 4 32
IO... yuva420p9be 4 22
IO... yuva420p9le 4 22
IO... yuva422p9be 4 27
IO... yuva422p9le 4 27
IO... yuva444p9be 4 36
IO... yuva444p9le 4 36
IO... yuva420p10be 4 25
IO... yuva420p10le 4 25
IO... yuva422p10be 4 30
IO... yuva422p10le 4 30
IO... yuva444p10be 4 40
IO... yuva444p10le 4 40
IO... yuva420p16be 4 40
IO... yuva420p16le 4 40
IO... yuva422p16be 4 48
IO... yuva422p16le 4 48
IO... yuva444p16be 4 64
IO... yuva444p16le 4 64
..H.. vdpau 0 0
IO... xyz12le 3 36
IO... xyz12be 3 36
..... nv16 3 16
..... nv20le 3 20
..... nv20be 3 20
IO... rgba64be 4 64
IO... rgba64le 4 64
IO... bgra64be 4 64
IO... bgra64le 4 64
IO... yvyu422 3 16
IO... ya16be 2 32
IO... ya16le 2 32
IO... gbrap 4 32
IO... gbrap16be 4 64
IO... gbrap16le 4 64
..H.. qsv 0 0
..H.. mmal 0 0
..H.. d3d11va_vld 0 0
..H.. cuda 0 0
IO... 0rgb 3 24
IO... rgb0 3 24
IO... 0bgr 3 24
IO... bgr0 3 24
IO... yuv420p12be 3 18
IO... yuv420p12le 3 18
IO... yuv420p14be 3 21
IO... yuv420p14le 3 21
IO... yuv422p12be 3 24
IO... yuv422p12le 3 24
IO... yuv422p14be 3 28
IO... yuv422p14le 3 28
IO... yuv444p12be 3 36
IO... yuv444p12le 3 36
IO... yuv444p14be 3 42
IO... yuv444p14le 3 42
IO... gbrp12be 3 36
IO... gbrp12le 3 36
IO... gbrp14be 3 42
IO... gbrp14le 3 42
IO... yuvj411p 3 12
I.... bayer_bggr8 3 8
I.... bayer_rggb8 3 8
I.... bayer_gbrg8 3 8
I.... bayer_grbg8 3 8
I.... bayer_bggr16le 3 16
I.... bayer_bggr16be 3 16
I.... bayer_rggb16le 3 16
I.... bayer_rggb16be 3 16
I.... bayer_gbrg16le 3 16
I.... bayer_gbrg16be 3 16
I.... bayer_grbg16le 3 16
I.... bayer_grbg16be 3 16
..H.. xvmc 0 0
IO... yuv440p10le 3 20
IO... yuv440p10be 3 20
IO... yuv440p12le 3 24
IO... yuv440p12be 3 24
IO... ayuv64le 4 64
..... ayuv64be 4 64
..H.. videotoolbox_vld 0 0
IO... p010le 3 15
IO... p010be 3 15
IO... gbrap12be 4 48
IO... gbrap12le 4 48
IO... gbrap10be 4 40
IO... gbrap10le 4 40
..H.. mediacodec 0 0
IO... gray12be 1 12
IO... gray12le 1 12
IO... gray10be 1 10
IO... gray10le 1 10
IO... p016le 3 24
IO... p016be 3 24
..H.. d3d11 0 0
IO... gray9be 1 9
IO... gray9le 1 9
..... gbrpf32be 3 96
..... gbrpf32le 3 96
..... gbrapf32be 4 128
..... gbrapf32le 4 128
..H.. drm_prime 0 0
..H.. opencl 0 0
IO... gray14be 1 14
IO... gray14le 1 14
IO... grayf32be 1 32
IO... grayf32le 1 32

2020年4月22日水曜日

WPFのWebBrowserでHTML5を表示する

WPFと書いていますが、WPFに限らずWebBrowserコントロールでHTML5表示する方法です。
実際にはHTML5に対応するのではなく、プログラム中で使用されるIEのバージョンを変更する内容になります。(デフォルトではIE7が使用されます)

レジストリエディタを使用します。
よくわからない人は、止めておきましょう。

1.レジストリエディタの起動

スタートメニューを開いた状態で「regedit」と入力します。レジストリエディタが表示されるのでクリックして起動します。


2.レジストリの追加

レジストリエディタ内のエクスプローラをたどって、
HKEY_LOCAL_MACHINE-> SOFTWARE-> Wow6432Node-> Microsoft-> Internet Explorer-> MAIN-> FeatureControl-> FEATURE_BROWSER_EMULATION
まで移動します。


右側のキーの空のスペースを右クリックして、コンテキストメニューを表示し、
新規-> DWORD(32ビット)値を選択します。

 追加されたキーの名前を、作成したプログラム名(例ではMyApplication.exe)に変更します

 キーをダブルクリックして値を登録します。
表記を「10進数」に変更して「10001」を入力します


「10001」は「IE11 Edge」を指定していることになります。
その他の値はMicrosoftのオフィシャルページを参照してください。

2020年4月21日火曜日

SQLServerでカラム一覧を取得する

通常のカラム取得は以下のような感じ。

1.テーブルに含まれるカラムの取得

SELECT 
    S.name
   ,T.name
   ,C.column_id
   ,C.name
FROM   sys.objects T
inner join sys.schemas S on S.schema_id = T.schema_id
inner join sys.all_columns C on t.object_id = AC.object_id 
WHERE  t.name = '@テーブル名'
AND s.name='dbo'

または
SELECT 
    T.name
   ,C.column_id
   ,C.name
FROM   sys.columns C
inner join sys.tables T on t.object_id = object_id(T.name)
WHERE  T.name = '@テーブル名'


2.シノニムに含まれるカラムの取得

シノニムはsys.tablesではなくsys.synonymsを使用します。

SELECT 
    T.name
   ,C.column_id
   ,C.name
FROM   sys.columns C
inner join sys.synonyms T on t.object_id = object_id(T.base_object_name)
WHERE  T.name = '@シノニム名'



で、ここで当たり前ですがハマった。。。
シノニムでリンクサーバや他のDBを参照している場合、ローカルにはシノニムの先の情報が無いので、カラムが取得できません。
こっちが正解か・・・
SELECT 
    S.name
   ,T.name
   ,C.column_id
   ,C.name
FROM   [DB名].sys.objects T
inner join [DB名].sys.schemas S on S.schema_id = T.schema_id
inner join DB名].sys.all_columns C on t.object_id = AC.object_id 
WHERE  t.name = '@テーブル名'
AND s.name='dbo'[

2020年4月17日金曜日

PhotoShopが起動しなくなった(その3:管理者権限で実行)

別件のPhotoshop対応をしたので、こちらにもリンクしておきます。
記事は「PhotoShopElements4.0」を「Windows7」または「Windows10」で起動するための情報です。

以下、本文です。

我が家はAdobe Photoshop Elements 4.0 を使用しています。


古いソフトなので定期的に動かなくなるのですが、またPhotoshop が急に動かなくなりました。

起動しようとすると


無効なアドレスにアクセスしようとしています。

というエラーメッセージが表示されます。
(英語環境では「Attempt to access invalid address」と表示されているようです。)


前回はサービスの停止で解消しましたが、今回はサービスは起動しておらず・・・

今回は簡単でした。管理者権限で起動するだけです。

Photoshopを右クリックし「その他」→「管理者として実行」です。


画面のコピーを取り忘れましたが、起動直後にAdobe Updatorのようなものが起動して、
C:\Users\<ユーザ名>\Documents\Updater
というディレクトリを作成されました。

ここにアクセスしようとしてエラーとなっていたんじゃないかな

問題が起きる直前にWindowsUpdateから、2020年4月の累積的な更新プログラム(KB4549951)を適用されたので、何か設定が変わったのかもしれません。



2020年4月15日水曜日

CANON あんしんメンテを利用しました

コロナの影響で自宅待機している方も多いかと思います。
どうせ出かけられないし、お祭りなども開催されないなら、、、ということでカメラのメンテナンスをすることにしました。

自分でする方法もあるけど「キャノン あんしんメンテ」を利用しました。

メンテパックは以下の3種類

あんしんメンテ スタンダードはサービスセンターに持ち込むことで即日対応できるようですが、それ以外のメンテナンスパックは10日~2週間程度かかります。

また、現在はコロナの影響で修理に時間がかかることが多いようです。
修理受付再開および一部のキヤノン製品の修理遅延について



現在、申し込みしてもゴールデンウィークまでに点検が完了しない可能性が高いです。
ただ、どちらにしろ自粛期間なので関係ないかな。
また、ゴールデンウィーク明けもシステムメンテナンスが入るようなので、申し込みは今のうちにしたほうが良いかと思います。

見積金額について

私はEOS 6D本体あんしんメンテ プレミアムを選択しました。
基本料金(10,450円)と部品代金目安(3,300円)で見積もりは13,750円となるようです。
※画像は申し込み時点のものなので金額やサービスは申し込み時にオフィシャルページのものを確認してください。
この料金はあくまでも見積もりです。
部品交換などで、もっと高額になる場合もあります。
高額になる場合に修理するかどうかについては、申し込み時に選択できます。

WEBでの申し込み(引き取り修理サービス)

都会の方はサービスセンターに行けば受付できるそうですが、地方の人はカメラを送付する必要があります。そこで「引き取り修理サービス」を利用することになります。
クロネコヤマトを利用するサービスで、残念ですが別途送料(2,750円)がかかります。


まずは機種を選択します。
 つぎに商品を選択。


商品ページにつくので、画面下の「あんしんメンテの申し込み」から「引き取り修理サービス」を選択します。
直接の持ち込みの場合は「持ち込み」を選択します。


引取修理サービスの画面に遷移するので、手順や費用を確認して「ウェブで申し込む」を選択します。

CANON iMAGE GATEWAYの登録がない安倍は「登録していない」から「修理申し込みへ」を選択

利用規約を確認し、問題なければ「同意する」を選択します。

申し込み情報を記入します。
「あんしんメンテ」に関する情報は下部にあります。

ページ下部の依頼内容入力で、依頼したいメンテナンスパックを選択します。
また、先に書いたように、基本料金や目安料金(見積金額)を超えた場合の連絡有無についても選択します。
必須項目をすべて入力したら「次へ」を選択


申し込み情報に間違いないか確認して「次へ」を選択


これで申し込み完了です


ここに表示される「修理番号」から、修理状況を確認できます。

カメラの発送

申し込みを終えると、クロネコヤマトから発送用のBOXが届きます。
15時までの申し込みなら、翌日には届くみたいです。


中身は梱包用のエアーと、封印テープと送付状

エアーのなかにメンテナンス依頼のカメラを入れて封をします。


段ボールに封印テープを貼って

さらに送付状を貼り付け。
これで完成です。

あとは、クロネコヤマトに受け取り依頼を出すだけです。
私は近所にクロネコヤマトの営業所があるので、そこに直接持っていきました。

修理内容の照会

申し込み時に発行された修理番号から、修理内容の照会が可能です。



見積もりの連絡

数日後、見積金額を超えたため、メールが届きました。
撮影枚数などから、プランを上のものに切り替える提案が・・・


これは予算オーバーなので断り、現状のプランのままの点検を継続してもらいました。

見積もりに問題ない場合は照会画面から、点検続行を指示するのですが、 今回のように「OKでもキャンセルでもない」場合は個別の返信をすることになります。
届いたメールにそのまま返信するのではなく、届いたメール本文に記載されている回答先に対して返信してください

修理完了の連絡

カメラ送付から1週間程度で、修理完了の連絡が来ました。
修理内容や修理金額が記載されています。
配達はクロネコヤマトで、荷物追跡できます。
※荷物は代引きとなっています。


後日カメラとあわせて、こんな感じで診断結果が届きます。
撮影回数などみると、確かにボロボロなんでしょうね(汗
まぁ、オーバーホールするよりも、新しいやつ買うほうが良いと思うので、壊れるまではこのまま使いましょう



2020年4月14日火曜日

拾った石をツルツルに磨いてみた

最近のコロナ過のなか自宅で出来る暇つぶしの紹介
石をツルツルに磨いてみました☆
やることは延々と、やすりで磨くだけ。
100均で買ったやすりを使って、順番に磨いていきます。
粉が出るので、耐水紙やすりを使用してバケツに水をためて磨きました。

磨くときは手に力が入ってしまいがち。
けど、疲れるし、やすりの目詰まりの原因になるので、軽めに磨いたほうが良いです。



以前拾った綺麗な石、拾ったときは濡れていたのでツルツルできれい!
と思ったんだけど、乾燥したらただの石に・・・
 濡れているとツルツル綺麗に見えたけど、乾燥するとガサガサな石でした・・・


#240
やすりは番号が小さいものから使っていきます。
240番で磨いたところ。目が粗いのでがりがり削れて粉もたくさん出ます。
でも、見た目は特に変わらないかな

#400
400番で磨いたところ。まだ、削りカスが出てくる感じです。
少しだけ、ライトの反射が強くなったような?

 #800
このへんの番号のやすりから、ちゃんと磨けているのかわかりにくくなってきます。
でも、磨いた後の手触りが良くなってきます♪
見た目もツルツルになってきました。

 #1200
やすり自体がツルツルなので磨けている気がしないけど、ちゃんと磨けていますよ

 #2000
100均の耐水やすりセットで一番上の2000番で磨くとこんな感じ。写真でもかなりツルツルに見えませんか?



今回はさらにコンパウンドで磨いてみました。
プラモの仕上げ用の研磨材です。本来は専用の布も必要ですが、石を磨くだけなのでティッシュ的なもので代用(キムワイプ)


タミヤコンパウンド(粗目)

タミヤコンパウンド(細目)

最初との比較です。
かなり見違えました♪





#おうちで過ごそう