フレームバッファで焼かれるあひるを録画する(あひる焼き Advent Calendar 2015)

この記事は あひる焼き Advent Calendar 2015の12月15日分の記事です.
#2度めですが1週間ほど空きがあったので.


🔥

以前こんな記事を書きました.

この時は

#terminal をフレームバッファも含めて動画でスクリーンショットとる方法が解らず今回は仮想マシンで実行してキャプチャしました.だれか端末のフレームバッファも含めての動画でのスクリーンショットのとり方を知ってる人が居たら教えて下さいo

という感じでフレームバッファの動画の録画方法が解らず,別のカメラで画面を録画していました.調べたら方法が見つかったので今回はその手順を紹介したいと思います.

といっても avconvffmpeg でフレームバッファを指定するだけです.
#Debian stretch からはまた libav から FFmpeg に戻るようです. > libav and FFmpeg: switch over

$ avconv -f fbdev -i /dev/fb0 fb.mp4
$ ffmpeg -f fbdev -i /dev/fb0 fb.mp4

これで録画したのがこちらです.

これで画面をカメラで録画したりしなくても焼かれるあひるが録画できるようになりました :)

JOSMにJava8を使うように言われたのでJavaを変更する

JOSM を起動するとスプラッシュ画面に次のようなメッセージが><

JOSM – Java OpenStreetMap エディタ

このバージョンのJavaはもうすぐサポート対象から外れます。 Java 8以上にアップグレードしてください!

現在利用している Java は Debian stretch のパッケージで導入した Oracle Java 7 です.OpenJDK 7 でも同じメッセージが表示されます.
ディストリビューションがサポートしている間は脆弱性とかは修正されるだろうけど JOSM 側でサポート打ち切る可能性もあるので Java 8 を使えないか確認してみます.

% where java
/usr/bin/java
% /usr/bin/java -version
java version "1.7.0_25"
Java(TM) SE Runtime Environment (build 1.7.0_25-b15)
Java HotSpot(TM) 64-Bit Server VM (build 23.25-b01, mixed mode)
% dpkg -l oracle-java7-jdk|grep ^ii
ii  oracle-java7-jdk 7u25         amd64        Java(TM) JDK, Standard Edition, Oracle(TM)

Oracle Java は未だパッケージにないけど OpenJDK 8 は存在するよう.

% apt-cache search oracle-java
oracle-java7-jdk - Java(TM) JDK, Standard Edition, Oracle(TM)
% apt-cache search openjdk-8  
openjdk-8-jre-jamvm - Alternative JVM for OpenJDK, using JamVM
openjdk-8-dbg - OpenJDK ベースの Java ランタイム (デバッグシンボル)
openjdk-8-demo - OpenJDK ベースの Java ランタイム (デモおよびサンプルファイル)
openjdk-8-doc - OpenJDK 開発キット (JDK) ドキュメント
openjdk-8-jdk - OpenJDK 開発キット (JDK)
openjdk-8-jre - OpenJDK Java ランタイム - Hotspot JITopenjdk-8-jre-headless - OpenJDK Java ランタイム - Hotspot JIT(ヘッドレス)
openjdk-8-jre-zero - Zero/Shark を用いた OpenJDK 用の代替 JVM
openjdk-8-source - OpenJDK 開発キット (JDK) ソースファイル

OpenJDK 8 を導入してこのシステムの規定値に設定します.

% sudo apt install openjdk-8-jre
% sudo update-alternatives --config java
alternative java (/usr/bin/java を提供) には 4 個の選択肢があります。

  選択肢    パス                                          優先度  状態
------------------------------------------------------------
  0            /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java   1071      自動モード
  1            /usr/lib/jvm/java-6-openjdk-amd64/jre/bin/java   1061      手動モード
  2            /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java   1071      手動モード
  3            /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java   1069      手動モード
* 4            /usr/lib/jvm/jdk-7-oracle-x64/jre/bin/java       317       手動モード

Press <enter> to keep the current choice[*], or type selection number: 3
update-alternatives: /usr/bin/java (java) を提供するためにマニュアルモードで /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java を使います
% where java
/usr/bin/java
% /usr/bin/java -version
openjdk version "1.8.0_72-internal"
OpenJDK Runtime Environment (build 1.8.0_72-internal-b05)
OpenJDK 64-Bit Server VM (build 25.72-b05, mixed mode)
% /usr/bin/java -jar ~/bin/josm-latest.jar

無事起動して,警告メッセージは表示されなくなりました :)

https://www.flickr.com/photos/119142834@N05/23418744202/in/dateposted-public/

もし,他の Java アプリケーションが OpenJDK 8 を嫌がる場合はそちらを優先して JOSM は以下のようにして起動するようにしてもいいかもしれません.

% /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java -jar ~/bin/josm-latest.jar