QSV、NVENC、とはなんぞや。(エンコード関連)その3

しばらく使いながら、少しづつ変更しながら、やっと落ち着いたエンコードが次になります。

基本は、リサイズせず、大きな画像崩壊を起こさない程度で、30分で400MB程度に収まるように(大体ビットレートが1500kbpsくらい)しています。

最初はCQ(品質指定)で行う予定でしたが、私の理解が追い付かず、細かい指定がうまくできなかったのでビットレート指定でのVBRで行っています。

/usr/local/bin/ffmpeg /
	-hide_banner /
	-ignore_unknown /
	-dn /
	-y /
	-vsync 0 /
	-hwaccel cuvid /
	-analyzeduration 200M /
	-probesize 200M /
	-c:v mpeg2_cuvid /
	-deint adaptive /
	-drop_second_field 1 /
	-i 入力ファイル /
	-movflags faststart /
	-sn /
	-c:v hevc_nvenc /
	-vf hwdownload,format=nv12,yadif=0:-1:0,hwupload_cuda /
	-preset slow /
	-b_ref_mode 2 /
	-rc vbr_hq /
	-cq 23 /
	-qmin 15 /
	-qmax 40 /
	-qcomp 0.6 /
	-b:v 1.5M /
	-maxrate 20M /
	-rc-lookahead 50 /
	-i_qfactor 0.75 /
	-b_qfactor 1.1 /
	-spatial_aq:v 1 /
	-aq-strength 15 /
	-af volume=0dB -c:a aac -ar 48000 -ab 192k -ac 2 -bsf:a aac_adtstoasc /
	-fflags +discardcorrupt /
	出力ファイル

解説は必要ないと思いますが、数か所あります。

  • -vf:インターレース解除をするために、yadifを指定しています。hwdownload/hwuploadの意味がいまだに解ってないので、実際に動かしてエラーが出なかったこの書き方になってます。間違っているかも知れません。引数なんかは、 ニコラボ | niconico と ffmpeg のことを中心に書いてる を参考にしました。
  • -af:音声についてですが、音量が小さいものもあったので、ffprobeをつかって、音量をなるべく大きくできるようにしてます。今回は0dBに固定してますが、実際は変数にして放り込んでます。
  • -b:v 1.5M -cq 23 -qmin 15 -qmax 40 -qcomp :本来なら、cqを指定した場合は、品質指定モードなので、ビットレートは指定せず、0を引数で与えるのが正しいそうですが、それでは希望通りにいかなかったので、やむを得ずビットレート1.5Mを指定しています。この場合、cq、qmin,qmax,qcompはお飾りとなって、意味を持ちませんが、おまじないとして残しています。意味はないです。

ちなみに、cq38くらいにすれば、ビットレート2Mくらいになりました。

お月様をコンポジット

ラッキーイメージング?なんかよく分からないけど、そんな感じのことをしてみた。

まぁ、被写体がお月様なので、そんなこと必要ないと思うんですけどね。

前回の投稿でも月の写真を出してますが、そちらは200mm望遠で撮影したのをクリップ拡大したものです。もちろん、一発撮り。

今日の分は、Z6とD810Aにkenko ミラーレンズ500mm F6.3 DX+専用2倍テレコンバーターを付けた1000mm!という超望遠で撮ってみました。

といっても、かなり小さな反射レンズなので、結構な感じで、結像が歪んでます。なので、一発撮りだとむりだろうなぁ、ということで、動画撮影し、その中から状態の良い物をコンポジットするという、ラッキーイメージングを行ったわけです。

で、気がついたんですが、さすが新しいだけあって、Z6すごいわ。4K30fpsで撮影できるので、予想以上にくっきり写ってます。

と、私が言っても要領を得ないので、百聞は一見にしかず。

2020.05.04 月 NikonD810A、kenko ミラーレンズ500mm F6.3 DX+専用2倍テレコンバーター(焦点距離:1000mm)、ステライメージ8編集 ■撮影情報 露出開始 2020年 05月 04日 月曜日 18:29:37 2020/05/04 09:29:37, 2020/05/04.39557 UT 露出中央 2020年 05月 04日 月曜日 18:29:42.580 2020/05/04 09:29:42.580, 2020/05/04.39563 UT 露出時間 11.16秒 (0.02秒 × 669枚)
2020.05.04 月 NikonD810A、kenko ミラーレンズ500mm F6.3 DX+専用2倍テレコンバーター(焦点距離:1000mm)、ステライメージ8編集
■撮影情報
露出開始 2020年 05月 04日 月曜日 18:29:37
2020/05/04 09:29:37, 2020/05/04.39557 UT
露出中央 2020年 05月 04日 月曜日 18:29:42.580
2020/05/04 09:29:42.580, 2020/05/04.39563 UT
露出時間 11.16秒 (0.02秒 × 669枚)
2020.05.04 月 NikonZ6、kenko ミラーレンズ500mm F6.3 DX+専用2倍テレコンバーター(焦点距離:1000mm)、ステライメージ8編集
2020.05.04 月 NikonZ6、kenko ミラーレンズ500mm F6.3 DX+専用2倍テレコンバーター(焦点距離:1000mm)、ステライメージ8編集
■撮影情報
露出開始 2020年 05月 04日 月曜日 18:36:06
2020/05/04 09:36:06, 2020/05/04.40007 UT
露出中央 2020年 05月 04日 月曜日 18:36:13.125
2020/05/04 09:36:13.125, 2020/05/04.40015 UT
露出時間 14.25秒 (0.03秒 × 427枚)

転職します

ちょうど契約も切れるので転職することにしました。

今度は長崎かなぁ。

とはいえ、こんな状況ですから、仕事が旨く見つかるかどうか心配ですけどね。まぁ、一月くらいはゆっくりしてから探すつもりなのでちょうど良いのかもしれません。

閑話休題

暇なので夜な夜な撮影に”明け暮れ”ています。(”暮れ明け”かな?笑)相変わらず職質も受けます「撮れてますかー」「お疲れ様ですー12時頃には引き上げます-」ってやりとりですけど。ありがたい限りです。

さて、昨日は月が綺麗だったので、サブカメラとなってるZ6でお月様を撮ってみました。レンズは普通の小三元望遠ズーム「Nikon AF-S NIKKOR 70-200mm f/4G ED VR」200mで撮りましたが、十分ですね。

というか、お月様を撮るのなら、中心部分がキリッと撮れるレンズなら何でも医院ですよね。周りは真っ黒ですし、被写体は明るいし。

2020.04.30 月 Nikon Z6、Nikon AF-S NIKKOR 70-200mm f/4G ED VR、1/250s 200mm F4 ISO160.Capture NX-Dで現像、クリップ。
2020.04.30 月
Nikon Z6、Nikon AF-S NIKKOR 70-200mm f/4G ED VR、1/250s 200mm F4 ISO160.Capture NX-Dで現像、クリップ。

物欲が出てきました。

見る物すべてがほしくなる時期って無いですか?

たまにあるんですが、絶対に必要ないのに見ると何でもほしくなる時期があります。(と言うかストレス? ちょっと前にその波が来て、大分落ち着いたと思うんですが、なかなか消えてくれないブツがあります。

まぁ、カメラのレンズが欲しくなってるんですよ。AF-S NIKKOR 24mm f/1.8G ED。ポートレートなんかに最適なヤツです。(こんな事言ってますが、人は撮りません、99%が風景です。←少数派なんですってね。カメラ持つ人は人を撮ることが多いんだって。)といっても、結構なお値段がするので、簡単に買える物でもないのですが。

悩ましいねぇ。 宝くじでも当たらないかなぁ。

八百万の神様は良い題材

SNSやグッズで話題沸騰の「とーとつにエジプト神」は、原作者・yukaさんが描く、古代エジプトの神々たちがおりなす、かわいくてゆる~い世界観が女性たちの心を掴んできた人気キャラクター。本日2020年4月15日に、ついに待望の書籍化を果たしたばかりだ。

情報源: 「とーとつにエジプト神」が、とーとつにアニメ化決定! – アキバ総研

 

いや、特にこの原作は知らないんですけど、ふと思ったんです。日本って神様を題材にした作品多いよね。って。

古事記に出てくる神様達はもとより、仏陀やキリスト、北欧神話にギリシャ神話。とうとうエジプトの神々まで餌食になったか。と言う感想。

それも、全部憎めないキャラクターになることが多いのも特徴だよね。(這い寄る○○とかね)

メモ代わりのwikiに変わって

今までPukiWikiで一般公開しない情報を整理してメモ代わりに使っていたのですが、10年も経てばもっと良い物が出てるだろうと思って、代わりになる物を探してみました。

行き着いた先はGROWI。よく分からないうちに始めましたが、使ってみると使い心地がかなり良いですよ。markdown記法と言うのがpukiwiki記法に比べて楽というのもあるのでしょうが。

システム自体はdockerというのを使ってるっぽいのですが、まっっっったく解ってませんw。IT技術者じゃないからね!

ということで、暇になったらdockerってヤツを少し勉強してみようかと思ってるところ。

その前に、本業の生涯学習しないといけないんだけどね! ま、こちらは後回しにして(ぉぃ

緊急事態宣言でましたね。

安倍首相会見「正しい情報に基づき冷静な行動を」

情報源: 安倍首相会見「正しい情報に基づき冷静な行動を」 | NHKニュース

 

この発表の冒頭、医療従事者に対しての謝辞があったんですが、その中に、薬剤師って入ってなかったんだよね。(ワラ

 

やっぱり、医療従事者じゃないらしいwww

 

なのに、「病院や薬局など」って文言を入れる辺り、薬局は薬剤師無くても良いと、暗に認めてる気がするww

新しいレンズ

以前から気になってるレンズがあります。引っ越しの時に、不動産なんかで見る室内写真。最近は広角レンズ18mm位で取ったんだろうなぁと言う、撮って出しの雑なのが多いですが、ちょっとこだわった所に行くと、綺麗な室内写真を見せて貰える所もあります。

それとか、本屋さんで建築関係の本を眺めてみたり旅本を眺めてたりすると、違和感を感じる写真があったので、調べてみたら、普段は使わないレンズを使ってることが解ってきました。

その名も、「シフトレンズ」

と言うことで、この話、結構前なんです。で、気になってるんですが、何せ、高い!このレンズ構造的にイメージサークルを大きめに作らないといけないので、それだけでも高くなります。さらに収差も結構シビアな設計になるそうで。

まぁ、そういうことで、チェックリストには入ってるのですが、手が出せないレンズとして「PC-E Micro NIKKOR 45mm f/2.8D ED」が入ってた訳ですが、此奴じゃ無くて、「PC-Nikkor 35mm F2.8」の中古と出会ってしまったのですよ。こっちの35mmの方。かなり年配の方で、発売が 1980年11月。なんと私よりも年上。。。

とまぁ、そんなわけで、このレンズ使ってちょっと桜でも(全然意味ないじゃんw)取ってみました。

人吉城内、相良神社境内前桜
2020.03.29 人吉城桜並木 Nikon Z6、PC-Nikkor 35mm F2.8、1/800s F8 ISO400.Capture NX-Dで現像。

見てもらえば解るんですが、ボケが綺麗なんです。それに、古いレンズですから、オートってのが何も効かないw すべて手動なんですね。

久しく忘れていたカメラの楽しみを思い出しました。構図を決めて、絞りとシャッターを調節して露出を決めて、ピントを合わせて、、、さぁ、撮るぞ!と、のこの流れ、今のデジタルカメラではオート任せにしているせいで忘れがちなんですよね。

時間はかかるけど楽しいレンズです。35mmの単焦点になるんですが、案外良い物ですね。ちょっと広角側なので使い勝手悪いかなと思ったんですが、結構近くで取れるので、旅行に持って行く一本としては50mmよりも35mmの方が良いかもしれないです。DXクロップ使えば45mm位にはなるし。Z6の画素数だとクリップでも問題ないしね。


続きを読む 新しいレンズ

旧鯖の終了

トラブルに備えて、新鯖の裏でこっそりクローン稼働していた旧鯖が本日でお役目ごめんとなりました。

旧鯖はHP ProLiant MicroServer N54L PROLIANT-500をつかっていたのですが、当時、Amazonで15000円程度でした。調べてみたら、2014年9月に購入してたので、6年間の稼働ってことですね。

うん、想像よりも短かったな。予定では10年ほど使う予定だったのですが、技術の進歩が大きかったと言うことですな。

しかし、この6年で、メンテ、OSアップグレードで再起動はしましたが、連続する電源OFFは有りませんでした。そんな中でも一度も故障せず稼働したというのはすごいですね。録画サーバーも兼ねているので、結構な頻度でHDDも動くし、H264エンコードもしてたので、CPU100%に近い時間も結構あったと思いますが。

さて、旧鯖は本日から実験鯖に移行します。この筐体で上手く行ったら、新鯖に実装するための実験台ですね。それまではゆっくり休めてあげましょう。

あ、GROWIってのが気になってるんだった・・・(爆

H265 NVencが固まってきた

暫く試行錯誤してましたが、大体固まってきました。

目的は、録画したTSファイル、過去に録画して、あまあま(低圧縮H264)mp4を再エンコードして、容量を圧縮、保存すること。

本当なら、リサイズして1280か720位にしてビットレートを稼ぐのが良いのでしょうが、リサイズは嫌いなので、放送字のサイズを保ったままのエンコードを行います。

音声についても、基本は放送のママ。字幕なんかは切り捨ててますけど。

と言う条件でやっております。

読みにくいので、改行を挟みながらの記載にします。

/usr/local/bin/ffmpeg \
-hide_banner \
-ignore_unknown \
-dn \
-y \
-vsync 0 \
-hwaccel cuvid \
-analyzeduration 200M -probesize 200M \
-c:v h264_cuvid \
-deint adaptive -drop_second_field 1 \
-i input.mp4 \
-sn \
-c:v hevc_nvenc \
-vf hwdownload,format=nv12,yadif=0:-1:0,hwupload_cuda \
-preset slow \
-b_ref_mode 2 \
-rc vbr_hq \
-cq 30 -qmin 20 -qmax 40 -qcomp 0.6 \
-b:v 2M -maxrate 20M \
-rc-lookahead 50 \
-i_qfactor 0.75 -b_qfactor 1.1 -spatial_aq:v 1 -aq-strength 15 \
-c:a copy -fflags +discardcorrupt \
output(H265ReEncode).mp4

オプションの説明らしきモノ(誤解してる内容があると思うので、信用度は低いですよ)

  • -hide_banner:ffmpegを実行したときに出てくるVer情報とか、enableにしてるオプションの情報なんかを表示させない。
  • -ignore_unkown: 不明なストリームタイプを無視,
  • -dn: データを無効。
  • -y:出力ファイルが存在する場合、上書きする。
  • vsync 0: 映像の同期方法。 フレームをドロップ・コピーしてタイムスタンプをあわせることで映像を同期する。 (0,1,2を選べる。詳細はffmpeg Documentationを参照)
  • -hwaccel cuvid: HWエンコードでcuvidを明示.
  • -anaryzeburation 200M -probesize 200M
  • -c:v h264_cuvid(インプットファイルの前に書いてあるヤツ):入力ファイルをデコードするデコーダーを指定。
  • -deint adaptive -drop_second_field 1
  • -i input.mp4 :入力ファイル。
  • -sn:字幕出力しない。
  • -c:v hevc_nvenc:出力ファイルのエンコードをH265のNVEncで行うように、エンコーダーを指定。
  • -vf hwdownload,format=nv12,yadif=0:-1:0,hwupload_cuda:hwdownloadでハードウェアフレームをシステムメモリへダウンロードする。hwupload_cudaで システムメモリフレームをハードウェアサーフェスにアップロードする。 らしいが、詳しくは解らん。 format=nv12は色空間の指定。 yadif=0:-1:0は、インターレース解除で有名なヤツ。オプションは”一番メジャーなインターレース解除フィルタ yadif | ニコラボ”を参照して下さい。
  • -preset slow:11種類あるので、好きなのを選ぶ。詳細は”ffmpeg -h encoder=hevc_nvenc”を参照すればOK。
  • -b_ref_mode 2:Bフレーム対応のGPUだと有効にできます。(1660Superより上位のRTXシリーズだと対応してるっぽい。”ASCII.jp:GeForce RTX&新NVENC、OBSで高画質ゲーム配信できるって本当? (2/8)“を参照
  • -rc vbr_hq:プリセットのレートコントロールを上書きする。
  • -cq 30 -qmin 20 -qmax 40 -qcomp 0.6: 品質指定(0-51)、最低品質、最高品質を指定、 q値をどのくらい変動させてよいかの尺度らしい。
  • -b:v 2M -maxrate 20M:ビットレートを指定。0に設定するとcqに沿って行う(ビットレートは最大値までの間でcqを満たす値でエンコードされる)が、0以外の値を指定すると、こっちが優先で、cq値が合わなくなってくる。(主にビットレートが足りないときには指定したcq値よりも大きくなる。)
  • -rc-lookahead 50 :レート制御のために先読みするフレームの数。
  • -i_qfactor 0.75 -b_qfactor 1.1 -spatial_aq:v 1 -aq-strength 15
  • -c:a copy -fflags +discardcorrupt
  • output(H265ReEncode).mp4:出力ファイルの名前、適当にどうぞ。

徒然なるままに書いた駄文日記