2016年4月30日土曜日

切り貼りして即使える、ffmpeg 加工例文集

ffmpeg :世界標準って感じがします

切り貼りして即使えるがコンセプト。
気が向いた時点で例文を書き足していこうかと思います。いくつかのパターンさえメモしておけばたいてい対応できるのではないでしょうか。

最小限知識:ffmpegの基本:ファイルを読んで、別のファイルに変換する

フォーマット=コンテナの変換は拡張子を変えるだけです。 flv をmp4 など。
ffmpegは拡張子を判別します。タイプがあるとしらんがなとエラーを吐きます。あらゆる形式に対応しているわけではありません。ほぼ必要と考えられる形式には対応しています。コンパイルオプションによるのかもしれません。

ffmpeg  -i infile.flv out.m4v
ffmpeg  -i infile.mov out.mp4

まとめ

ffmpeg  -i infile.ぐしゃ out.ほにゃ
 ... みたいな感じが基本。覚えるのはこれだけです。(本当)


変換が完了しても、カメラなどからひっぱったオリジナルファイルは残しておいたほうがいいです。 のちのち再生不良気味になった場合にオリジナルから、その時のffmpegなどで使いやすいフォーマットに変換すればいいからです。x264は枯れているといいきってもいいと思いますが、hevc対応ソースは発展途上といえるので特に注意が必要かなと思います。

ビデオとサウンドを無劣化コピーするか、変換/エンコードしてもいいのか。脳裏においておいたほうがいいかも。 

WindowsビデオのWMVをm2ts形式に

WindowsビデオのWMVをm2ts形式にしてみる。x264で音声はそのまま。ムービーメイカー(Win7の無料のアレ)などでうまくいかなければ、別コンテナで試してみるといいかも。

ビデオコーデックと音声のそれを別々にも指定できますし、劣化なしを望むならコピーでもいいわけで。ffmpegとコンテナが対応していれば次のように。

絵 は、x264/AVCでエンコード、サウンドはコピー。基本はこんなかんじ。


ffmpeg -i in.wmv -vcodec libx264 -acodec copy out.m2ts

HEVCで小さめのファイルにしたい場合

高圧縮(=サイズ小)でも粗が目立たない動画にする例。HEVCは画質が良いわけではないです。良くなるわけでもないです。サイズの割に高画質と私 は理解しています。

CPUが遅いとエンコードに笑えるほど時間がかかりますので、電気の無駄かもしれません。HEVCが正式名称ですが、あえてオプションは過去の経緯を 踏まえたものになっているのでしょうか。

ffmpeg -i in.mp4 -vcodec libx265 -acodec copy out.m4v

サイズ半分というか、40%圧縮ってかんじかもしれません。SDカードのないスマホを使っている場合にどうしても保存しておきたい動画があるんだ!! みたいな場合かな。今の時代、そこまでストレージに困窮することはないはずなので。Nexus6やiPhoneですね。

GPUハードウェア支援・アクセラレーションを有効にしてみる


エンコーディングをx264でやり直して、audioはそのままで、m4vコンテナにする。ついでにvdpau(unix/linuxのHWアクセル)を効かせる。WindowsならDXVA2か?! HW支援は推奨されていません(というメッセージがでます。そのうち正式対応されるかも)

ffmpeg -hwaccel vdpau -i in.file -vcodec libx264 -acodec copy outfile.m4v

範囲切り出し

45秒から10秒切り出し。
最初に切り出し開始のスタート地点を指定する、このオプションの順番がいいかも。範囲切り出し。例文はエンコ、デコードもしないで済むファイル内容・設定なので超速いです(単なるコピー)。必要ならlixb264などでどうぞ。GUIアプリより便利かも。

ffmpeg -ss 00:00:45 -i infile -t 10 -vcodec copy -acodec copy ./cut/cut.m4v

■BDAVフォーマットの「マイBlu-rayディスク」作成の準備作業

Windows7のムービーメーカーで作成したWMV形式のファイル。これを一括してビデオはH.264、音声はAC3に変換しながら、コンテナをm2ts形式にする。

たぶんですがBDAV作成でもっともトラブルがないコーデックがこの組み合わせなのではないかと思います。一時期凝ってみたがいまは飽きた。数が多い場合は、find を使うと効率的です。Windowsでは forfiles などでお願いします。

find . -name  "*.wmv" -exec ffmpeg -i {} -vcodec libx264 -acodec ac3 -ab 320k {}-x264-AC3.m2ts \; 

途中表示ではこんな風になります。

Stream mapping:
  Stream #0:2 -> #0:0 (wmv3 (native) -> h264 (libx264))
  Stream #0:1 -> #0:1 (wmav2 (native) -> ac3 (native))

※テストに使ったファイルはWindows7ムービーメーカー出力です。音声、映像共にエンコードしますので、時間がかかります。市販BDのようなかっこいい メニューのあるBDディスクを作るわけではありません。BDMVの場合は素直に市販ソフトウェアを購入したほうが楽でいいかと思います。いずれにせよ。

はなからソースファイルがm2tsという人は高機能ビデオカメラ所有者は別としてそんなに多くない気がしますので、結局のところ、トランスコード(エンコード)するわけで、すっげー 時間がかかるわけですね。

※ 準備作業です。この生成されたファイルをそのままBDに焼いただけでBDAVディスクになるわけはありません。 BDAVの仕様に合わせたファイルを更に生成し、ディレクトリ構造を適正にして焼き込みます。めんどくさいです。ディレクトリ構造まで作成できるスクリプ トは組んでみましたが、とにかくフォーマットを合わせるのにCPU資源が必要なのでいまいちテンションがあがりません。

■音声をAACにする場合

少しだけオプションを書き足します。 WMV(などマイクロソフトのフォーマット)は個人的には世界から撲滅の方向で。AACが悪いわけではないですよ。
ffmpeg -i in.wmv -vcodec libx264 -acodec aac -strict -2 out.m4v

#
#

■音声のみ、または、映像のみ抜き出す場合

動画から音声だけを好きな形式で抜き出す。
ffmpeg -i 動画 -map 0:1 out.ogg
ffmpeg -i 動画 -map 0:1 out.flac
ffmpeg -i 動画 -map 0:1 out.ac3
ffmpeg -i 動画 -map 0:1 out.mp3

いろいろ試してみてください。コンテナにどんな音声フォーマットで格納されているのかは、mediainfoなどでも、ffmpeg -i ファイル とか……確認できます。 同等それ以下の音質にはなりますが、元以上の音にはなりません。当方のようにガソリンエンジン音を抜き出すみたいな用途は特殊かもしれない。

動画から映像だけを抜き出す。無劣化。無声映画・サイレントみたいな。

ffmpeg -i 動画 -map 0:0 -vcodec copy videoonly.mp4


#当たり前すぎるけど、音声ファイルの変換にも使えます。
#省略

find /for で一括変換(flac から ogg|mp3|m4a)する。

二重拡張子を後続コマンドでリネーム。手抜き書式。
find *flac -exec ffmpeg -i {} {}.ogg \; && rename 's|.flac.ogg|.ogg|' *flac.ogg

かっこわるい点:&&の前で処理したいのだけど、よい方法がわからない。{}を変数として扱う方法がわからない。目的に対しては単純な方法なのでこれでいいんだけど。 while read で処理はできるが打鍵数が多いので使い捨てとしてはいまいち。 -exec の連続もかっこ悪い。

ま、ぜんぶまとめての場合は、別に考えたほうがいいですね。
かっこわるいんじゃなくて、これでいいのか。 見通しもいいし。KISS!
 
シェルでカレント一括で処理したい場合はこんなかんじのワンライナーで。アルバム単位ディレクトリに音楽ファイルが複数あった場合に、一括で変換するってことです。


FLACから各種フォーマットに変換
oggに
for flac in *.flac ; do ffmpeg -i "$flac" "${flac//flac/}ogg" ; done
mp3に
for flac in *.flac ; do ffmpeg -i "$flac" "${flac//flac/}mp3" ; done
m4aに
for flac in *.flac ; do ffmpeg -i "$flac" "${flac//flac/}m4a" ; done

※たとえばこれらのコマンド行を1行づつファイルにして、スクリプトフォルダにおいておけば右クリックで一括変換です。 以下を右クリックメニューの拡張 scripts nemo caja参照してみてください。

HandBrakeCLI 加工例文集

新規にターミナル(端末)を開きます。ubuntu系は以下を同時押し。CTRL+ALT+T

ハンドブレーク:handbrake

handbrake で幅640の小さなファイルにする。縦は無指定でも自動でアスペクト維持してくれる手抜きが許される。年齢によるが640は粗すぎる。qの数値で顕著な変化がありますので一回テストファイルで実感してみるといいです。おもしろいです。
HandBrakeCLI -e x264 --deinterlace fast -q 20 -w 640 -m -O -i in.file -o out.m4v

(ちょっと発展系)
HandBrakeCLI -e x264 --deinterlace fast --x264-tune film -q 20 -w 640 -m -O -i in.file -o out.m4v

FHD対応スマホでみるとしたら、960*540にしておくと画質とサイズバランスでいいかも。

RF値による変化と効率
メモ RF値の関連 HandbrakeCLI

180秒 24.0MBのオリジナルテストファイルHEVC to x264


RF    時間  生成サイズ

10 4:55  115MB サイズがえらくでかくなった。
20    2:40    30.6MB 
25    2:15    19.2MB
30    2:49    12.9MB 許容(5インチ以下のスマホなら)
40    1:40      7.7MB うーん。
50    1:12      5.4MB    見るに耐えない。ありえない。表現としておもしろい。

だいぶ前にテストしたメモなのでごめんなさい。10-20の範囲を試してみるべきですね。18ぐらいでいいんじゃないかと思います。20がデフォルトのはずです。 処理時間からみれば、20ですかね。


あれ?! この位しか使ってなかった。というより、ffmpeg依存が強まっているようですね。
ffmpeg加工文例集は別稿に分けます。

2016年4月29日金曜日

右クリックメニューの拡張 scripts nemo caja コードページエラーZipの克服

Zip の憂鬱。文字化け、時々コードページエラー。そして、解決した。(2) Xarchiver おそらく、GUIでの解凍はおおむね解決。

参考:コマンドライン・ターミナルでの操作


などがおすすめです。

ときどき難儀なShiftJIS/CP932なZIPアーカイブ対策:マウス右クリックでその「難儀」なzipを展開できるようにします。概要版。一番上のリンクをみてください。そのほうがいい。以下は記録のため残しておきます。

スクリプトフォルダーに一括解凍スクリプトなどをおきます。
MATEは、: ~/.config/caja/scripts
Cinnamonは、:~/.local/share/nemo/scripts

がスクリプト定置場です。

解凍・展開には、unarとunpを準備します。冒頭参考記事をどうぞ。unpには決め打ちしたパッチをあてます。

1種類で良いですが、unar/unpのふたつの解凍スクリプトを作成します。

以下のふたつをエディターで切り貼りして、スクリプト定置場におきます。そして、ふたつのファイルに実行属性を付けます。

和名でスクリプト名をつけておくほうがいいかもしれません。

●万能解凍一括(unar)君 

#!/bin/bash
#@unarを信じて各種アーカイブを一括解凍
#ZiSH
# 一括可。
#
#
#
for arg
do
    unar "$arg"
done

exit 0

●万能解凍一括(unp)君
#!/bin/bash
#@unp(カスタム済み)を信じて各種アーカイブを一括解凍
#ZiSH
# 一括可。
#
#
#
for arg
do
    unp "$arg"
done

exit 0


これで完成です。20年位前に自分で作成した文字化けzipなどを解凍してみてください。処理過程が見えないので、当方はzenityで拡張していますが、シンプルな例題を提示します。
頻繁に発生する事態ではないと思いますが損はないと思います。ここでいう万能とは、おおむね万能です。

CinnamonとMATEで両方インストールしている場合に、scripts を共通化する

スクリプトフォルダーに簡単なプログラム/シェルスクリプトなどをおいておくと便利です。場合によっては、ターミナルオンリーより速い場合もありますね。図は当方の例ですが、たとえば、コードページで日本語が文字化けするzipを解凍するZenityスクリプトとか、一括して配下をリネームするスクリプトとか、そういうのをいれています。~/binにはアルファベットでファイル作成して、定置場所ではシンボリックリンクに和名を付けています。順序は文字コード順*1なので、並びにこだわるなら、旧字なども使ってみるといいかも。くさび形文字もいけます。カナダ先住民族文字も。もちろんです。



余談はさておき、

MATEは、: ~/.config/caja/scripts

Cinnamonは、:~/.local/share/nemo/scripts

です。どちらかがメインだと思うので、片方にリンクを張るだけ。

例: nemoの定置場所を基本に、cajaにはリンクを張る。

新規にターミナル(端末)を開きます。ubuntu系は以下を同時押し。CTRL+ALT+T
ln -s ~/.local/share/nemo/scripts ~/.config/caja/scripts


今、unityなubuntu本流はいれていないので、どこでしたっけ?! 読み替えてください。

余談
文字コード順*1=エンコードというか、ソートオーダーは、ubuntu、debianやFedora、redhat も全部、UTF-8で使っていて正しいロケール設定をしていても、SiftJIS/EUCと同じ並びの気がします。MAC OSXみたいなUTF-8の並びでもないです(これも美しいとはいえない)。気持ち悪いです。美意識の観点からも、漢数字の並びも変えたかったので、自分の環境は変えました。きれいです。MACよりも、Windowsよりも美しい並びになりました。デフォルトはちょっと滑稽ですね。何せShiftJIS嫌いなもので。(汗)

2016年4月23日土曜日

WINE explorer.exe 仮想デスクトップを使う。

最近のWINEの完成度にはホントびっくりしますね。ちょっとだけTIPS。といってもWIKIの通りです。仮想デスクトップでWINEのアプリケーションを使おう、という意図ですが、WINEの仮想デスクトップというとイメージが湧きにくいので実際コマンドを打ってみてください。ほとんどの場合必要性は感じないと思いますが、解像度が限定的なゲーム(720p)の起動などに使っています。



新規にターミナル(端末)を開きます。ubuntu系は以下を同時押し。CTRL+ALT+T
WINE 仮想デスクトップを使うとたまに便利なことがあります。サイズが固定したい。低解像度ゲームの利用時などかな。 旧型アプリで挙動がアレとか、などの理由....

次のコマンドでたいていのケースでテストできます。コピペ、エンター。

wine explorer /desktop=VD,400x400 notepad.exe

ややこしいオプションは、WINE HQの通りにすればだいじょうぶです。が、そんなに研究しても仕方ないので、以下の事例通りでいいんじゃないかと思います。

次のようなデスクトップオブジェクト(通称アイコン)を作成しておけば、
マウスクリックで起動します。

LastFM.desktopを作成しマウスクリック起動にします。

[Desktop Entry]
Name=ja
Exec=env WINEPREFIX="/home/mate/.wine" wine explorer /desktop=DJ,1920x1199 E:\\\\working\\\\lastfm.exe
Type=Application
StartupNotify=true
Path=/home/mate/.wine/dosdevices/e:/working
Icon=/usr/share/icons/Numix/64/apps/jabber.svg
Name[ja_JP]=LastFM
解説
VDという名前の仮想デスクトップで、
lastfm.exe という名前のWindowsアプリを
1920*1199で開く。1ドットあえて減らしています。これで期待通り。 発見しました。
大事なファイルなので編集せずに起動テストが終わったらそのまま終了しましょう。
wine explorer /desktop=VD,800x800 notepad.exe c:\\\\windows\\\\system.ini

OSXでも同じなんでしょうか。
https://wiki.winehq.org/Explorer

2016年4月16日土曜日

それ find で!! コマンド1つで、全圧縮形式を解凍する。混沌を求めて。unar unp

最強の解凍ツールを求めて。SJIS含むが気分的には除外したい。

簡単にいうと最強も何もあったもんじゃないんですが、シフトJISが撲滅されると楽ですね。


  • unp すべての形式へのフロントエンドスクリプト(展開にはスクリプト内部でunzipなどを使います)。一部書き換えてchcp932対応にするといい。
  • unar すべての形式を解凍する便利ツール。コードページを解する。賢い。間違えたことがあまりない。数回あるけれど。そういう場合は、unzip -Ocp932 *.zip。


※すべて=だいたい。

※bash

コンビニエンスなツール・unp unar の導入

sudo apt install unp unar
ふたつ入れときます。ファイルは小さい。

■RAR形式Zip形式

ふたつ以上のzip/rarがある場合です。一つしかない場合は*の扱いが変わるので。

ディレクトリのRAR形式のファイルを一括で解凍、展開する。unar。find は手抜き書式。
#一括なら次の2行覚えておけば、ほぼ全てに対応できます。
find *.rar -exec unar {} \;
find *.zip -exec unar {} \;  
同、unrar/unzip の場合 
find *.rar -exec unrar x {} \;

#WindowsでいまどきShiftJISなファイル名格納されたZIPは個別に扱う。

unzip -Ocp932 filename.zip

■多様な形式をひとつのコマンド、書式で。unpで楽勝。

unpの場合(拡張子を変えれば万能的に使えます。zipなどにも) 発見したんだが、*.*が気軽に使えるにのがこのスクリプトの便利さかも。混沌とするかもしれませんが。
unp *.zip
unp *.rar
unp *.* 

■つまり、最強の解凍ツールunpといってもいい、かも。そうでもないが。

(ただし、「コードページの憂鬱」のある日本語環境は除外。一行書き換えればいいです)


unp *.* 
find *.rar -exec unar {} \; 
find *.zip -exec unar {} \; 

まぁ、化けるアーカイブファイルがあったら、(だいたいWindowsのものだけど)、unzip -Ocp932 *.zip を個別にかけちゃえばいいわけです。個別にunarだとかなりいい線いきますね(間違える場合もある)。

まぁ、~/Downloadsで、*.*を発行すると混沌とするだけですよね。あはは。

■最終回答(私の結論)テキトーなのであまり信じないほうがいいかも。unpの日本語対応版を作る。


unp 227行目を
        [ "unzip" ]を [ "unar" ] に書き換える。unzipをunarです。

sudo gedit `which unp`

      [ "unzip", "zip|cbz|cbr|jar|war|ear|xpi|adf", "Zip.*archive", 0,
#      [ "unzip" ] 
      [ "unar" ]

書き換えた方を、unpjとして、保存しておくといいのかも。とはいえ、自分が使うとも思えないですね。使いませんね。


これで、ほぼ当社調べ99.9%(Shift_JIS含めて)日本語環境に対応した解凍環境ができました。
unarに頼り過ぎると、RARによってはうまくいかないので、unar万能というわけでもないのです。めんどくさいな。 rarもややこしいところがあります。たぶん、形式が違うのでunrarの種別に絡みますね。めんどくさい。

おまけ:unarにコードページを強制する:unar -e cp932

alias zipsjis="unar -e cp932" #codeページ強制 解凍

それ find で!! 楽曲ファイルのノーマライズとアップコンバート SoX


オーディオに関わることなので、意図や意味については議論しませんが、楽曲ファイルを音楽ファイルのアーミーナイフといわれるSoXというツールで、ノーマライズとアップコンバート(アップサンプリング)してみます。下ネタの伏せ字ではありません。

SoXは、音声ファイルに対してできない処理はありません。たぶんなんでもできます。万能ツールです。Win/Linux/OSXで使えるので一回覚えると一生モノかも。Audacityとあわせればほぼ一般ユーザーのしたいことはぜんぶカバーされていると思います。作曲は別だけど。音も鳴らせるので数秒のメロディとかコマンドで設定できますね。気力のある人なら作曲もできる。


  • 大きすぎる音を少し小さめに、
  • サンプリングレートを44.1kから96kに、
  • ビット深度を24bitに、
 してみます。 音割れがCD収録レベルで存在すると確信するCD、これクリッピング発生してるんじゃないのと思った場合などにどうぞ。主たる目的はそれです。この手のツールはWindowsにはいろいろありますね。いろいろ演算して「何か」を作り出すツールとか。※音割れが消えるわけではないですよ。

印象的にざらついた感じがするのなら、jack+低遅延カーネル+DeadBeefで聴いて見るのもおすすめです。プレイヤーでけっこう違いますよね。いかん、こういう話は禁句だった。

余談、14.04LTSにソース落としてきて最新バージョンをコンパイルしてみて、依存関係を無視して強制インストールしたらシステムが変になりました。(汗) やらないほうがいいです。メンテナーの皆さんのバージョンがいいと思います。

実験開始です。新規にターミナル(端末)を開きます。ubuntu系は以下を同時押し。CTRL+ALT+T

soxを使って楽曲ファイルをアップコンバートする。Windowsでも同じ。OSXでも同じ。以下、対象ファイルは仮に10.flacとしています。

sudo apt install sox (未導入なら)




sox -S -G --norm 10.flac -r 96000 -b 24 10.flac_96k24b.flac

----
こんなかんじでノーマライズとアップコンバートが進行していきます。

sox -S -G --norm ./10.flac -r 96000 -b 24 ./10_96k24bit.flac

Input File     : './10.flac'
Channels       : 2
Sample Rate    : 44100
Precision      : 16-bit
Duration       : 00:04:35.05 = 12129852 samples = 20629 CDDA sectors
File Size      : 30.1M
Bit Rate       : 876k
Sample Encoding: 16-bit FLAC
......
In:100%  00:04:35.05 [00:00:00.00] Out:26.4M [      |      ]        Clip:0   
Done.

-----------
だいたいこんなふうになります。例
Audio
Format                                   : FLAC
Format/Info                              : Free Lossless Audio Codec
Duration                                 : 5mn 9s
Bit rate mode                            : Variable
Bit rate                                 : 3 419 Kbps
Channel(s)                               : 2 channels
Channel positions                        : Front: L R
Sampling rate                            : 96.0 KHz
Bit depth                                : 24 bits
Stream size                              : 126 MiB (98%)
Writing library                          : libFLAC 1.3.0 (UTC 2013-05-26)


効果については、個々人の心の中に。

ディレクトリまるごと。find で。全部のflacを処理。

 find . -name \*.flac -type f -exec sox.96k24bit {} \;

 sox.96k24bit は最後に示すスクリプトです。

ディレクトリ内flacまるごと。だけど、5番目の曲は変換しない。

find . -name \*.flac -not -name 5\* -type f -exec sox.96k24bit {} \;

※5でファイル名がはじまっている前提。"5 - わたしの愛のうたを聴いて❤.flac"みたいに。

楽曲管理ソフトの振り分け条件で違いますが、同一アーティストの同一アルバムなら同じディレクトリに全部あるのが普通なので、こういうのだけ覚えておけばいいかな、と。コンピアルバムとかけっこう面倒。検索すればいいだけですが。

Windows10は、2ヶ月後には、こうしたコマンドが使えるようになりますね(たぶん)。それまでは、forfiles でどうぞ。Win7/Win8は、forefilesで。 使いやすい良いコマンドです(本当の気持ち)。

sox.96k24bit いつもの適当スクリプト gedit ~/bin/sox.96k24bit


soxのオプションは英語のmanでは音関連の基礎知識がないと英語ができても厳しいと思うので、ググってみてください。いろいろ試した結果自分の場合こういうシンプルなオプションで落ち着きました。要はおまかせっていうことです。いろいろ考えても仕方がなかったです。世界ではいろんな試みがあるんだなと実感させられました。

#!/bin/bash
# -x
#@ sox でアップコンバートしてみる。ノーマライズ込。
#
#微妙な問題点、タグは引き継がれるが、カバーアートは埋め込みが必要。
#オリジナルからカバーを抜いて、格納するルーティンがあると楽かも。
#滅多に実行しないので、easyTAGでいいか。
#
#
#
#$1 の拡張子をとって変数に格納
if [ "$1" = "" ]; then echo nono; exit 0 ;fi #$1 が指定されてなかったら終了
basename=$1 ; targetname="${basename%.*}_96k24bit.flac" ; #echo "$filename"
if [ -f "$1" ]; then
# echo "$1 ファイルが存在します"
#echo "96k 24bit に変換。⇢ $targetname 生成。"
#echo soxsox変換するよ。
echo    sox -S -G --norm "$1" -r 96000 -b 24 "$targetname"
time    sox -S -G --norm "$1" -r 96000 -b 24 "$targetname"

else
  echo "ファイルが存在しません"
  exit 0

fi #$1 が存在してなかったら終了
echo genarated. ⇢ $targetname
echo "done"
echo "   "
exit 0
exit

前後のファイルをaudacityに読み込んでクリッピングチェック、スペクトラム表示を眺めてみるとよいです。

bit深度だけなら、SoX掛けなくても、deadbeef のオプションでリアルタイム変換してプレイできます。

余談ですが、EasyTAGであまりにでかいpngを埋め込むと再生不能ファイルになりました。以前はうまくいっていたんですけどね。

それ、マウス操作で:

複数指定ならこのスクリプトを一部書き換える必要がありますが、1曲づつならそのままでもscriptsにおけばいいでしょうね。nemo/nautilus/cajaで。

(日本に限らず、ヨーロッパの方(特に北のほうの国)とかもお好きだなぁという印象。アメリカ人はおおざっぱっぽい)


2016年4月15日金曜日

install linux-lowlatency on ubuntu16.04(低遅延カーネル)

低遅延カーネルを導入する。ubuntu16.04

sudo apt install linux-lowlatency


結論は以上です。たぶんLinuxMINT 18.0 でも同じになると思います。今回の導入理由は、通常のFLACでも音が荒れるかんじがする(聴感の話ではなくて、実際ノイズものる)ので、まずJACKをいれたのですが、コンパイルしながらだとまだ荒い。そこで低遅延カーネルもいれてみました。当方だと、ハイレゾフォーマット再生以外ではニーズはほぼないです。ローレイテンシーにすると目視ですが常時10%位CPU負荷が高い気がします。電気を喰っている?!



余談はさておき、Debian系列なら
synaptic(パッケージマネージャ:システム管理にある。名前はこんなかんじか)であれば、「linux-lowlatency」を検索して、インストールすれば、マウス操作で終わります(たぶん)。リブートしてください。


新規にターミナル(端末)を開きます。ubuntu系は以下を同時押し。CTRL+ALT+T
sudo apt install linux-lowlatency

依存関係含めて導入されます。
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています              
状態情報を読み取っています... 完了
以下の追加パッケージがインストールされます:
  linux-headers-4.4.0-18-lowlatency linux-headers-lowlatency linux-image-4.4.0-18-lowlatency
  linux-image-lowlatency thermald

提案パッケージ:
  fdutils linux-doc-4.4.0 | linux-source-4.4.0 linux-tools
以下のパッケージが新たにインストールされます:
  linux-headers-4.4.0-18-lowlatency linux-headers-lowlatency linux-image-4.4.0-18-lowlatency
  linux-image-lowlatency linux-lowlatency thermald
アップグレード: 0 個、新規インストール: 6 個、削除: 0 個、保留: 0 個。
58.5 MB のアーカイブを取得する必要があります。

 ...

Running depmod.
update-initramfs: deferring update (hook will be called later)
Examining /etc/kernel/postinst.d.
run-parts: executing /etc/kernel/postinst.d/apt-auto-removal 4.4.0-18-lowlatency /boot/vmlinuz-4.4.0-18-lowlatency
run-parts: executing /etc/kernel/postinst.d/initramfs-tools 4.4.0-18-lowlatency /boot/vmlinuz-4.4.0-18-lowlatency
update-initramfs: Generating /boot/initrd.img-4.4.0-18-lowlatency
run-parts: executing /etc/kernel/postinst.d/pm-utils 4.4.0-18-lowlatency /boot/vmlinuz-4.4.0-18-lowlatency
run-parts: executing /etc/kernel/postinst.d/update-notifier 4.4.0-18-lowlatency /boot/vmlinuz-4.4.0-18-lowlatency
run-parts: executing /etc/kernel/postinst.d/zz-update-grub 4.4.0-18-lowlatency /boot/vmlinuz-4.4.0-18-lowlatency
Generating grub configuration file ...
using custom appearance settings
Found background image: /home/commons/image/haiyore-nyarukosan0063.jpg
Linux イメージを見つけました: /boot/vmlinuz-4.4.0-18-lowlatency
Found initrd image: /boot/initrd.img-4.4.0-18-lowlatency
Linux イメージを見つけました: /boot/vmlinuz-4.4.0-18-generic
Found initrd image: /boot/initrd.img-4.4.0-18-generic
Linux イメージを見つけました: /boot/vmlinuz-4.4.0-17-generic
Found initrd image: /boot/initrd.img-4.4.0-17-generic
Found memtest86+ image: /boot/memtest86+.elf
Found memtest86+ image: /boot/memtest86+.bin
Found Windows 10 (loader) on /dev/sda1
Found Linux Mint 17.3 Rosa (17.3) on /dev/sda2
Found Linux Mint 17.3 Rosa (17.3) on /dev/sda3
完了
linux-image-lowlatency (4.4.0.18.19) を設定しています ...
linux-lowlatency (4.4.0.18.19) を設定しています ...
thermald (1.5-2) を設定しています ...
dbus (1.10.6-1ubuntu3) のトリガを処理しています ...
systemd (229-4ubuntu4) のトリガを処理しています ...
ureadahead (0.100.0-19) のトリガを処理しています ...

エラーがでずに終了したのを確認して、再起動します。
(grubの調整が必要な方は...そか、こんなもん読まずにいれてますね。略)
sudo reboot
Grubの選択
エントリーメニュー:上記例であれば、
linux-image-lowlatency (4.4.0.18.19) のカーネルから起動します。
※前回起動エントリーから自動起動する設定にしています。OSが7つ入っているので。

2016年4月13日水曜日

試してみた!(2) Windows Subsystem for Linux ,Ubuntu on Windows ::Zsh

目次

  1. 試してみた!(1) Windows Subsystem for Linux ,Ubuntu on W...
  2. 試してみた!(2) Zsh と起動とユーザーランド 
  3. 試してみた!(3) 予定
  4. 試してみた!(4) 予定
  5. 試してみた!(5) 予定        全5回

Zshをマウスクリックで直接起動する 

ググってもいないし、自分で調べてみての結果なので、適切かどうかはわかりません。発見したことをメモります。

コマンドプロンプトから起動する。1 bash
> bash

コマンドプロンプトから起動する。2 bash ノーマルはこれ。
>bash ~

コマンドプロンプトから起動する。3 Zshをダイレクトに起動する。
>bash -c 'zsh'

マウスクリックでZshを起動する。3b Zshをダイレクトに起動する。マウスでクリックの場合。
bash -c 'zsh'

と1行書いたテキストファイル zsh.cmd ファイルをどっか(デスクトップにでも)に作成してクリックするだけ。
このbash.exe にはパスは通っています。

zshは、/usr/bin/zsh /bin/zsh にいる。インストール済みであれば。未導入なら、
apt install zsh
で入ります。

などとubuntu上から書いていたりする。とにかくbash.exeを一回叩かないとLinuxのユーザーランドには入れないという仕様みたいですね。

そもそも、このbash.exe(Windowsバイナリ) は何なのだ(=面白い)。起動後は、/bin/bash(Linuxバイナリ)です。


Windows10 preview で導入できる、このbash.exeは、Linuxへの扉を開くトリガーと思うことにします。だいたいあっているはず。
ubuntu.exe にリネームしても動く気がする。だはは。

zshはまだまだ。残念な出来みたいですね。夏の記念大パッチ集では全体にブラッシュアップされていることを期待したいです。

2016年4月12日火曜日

mpv player のススメとハードウェアアクセラレーション設定

総括的追記2017年7月 日替わりドライバにして3ヶ月

既に書きましたが絵で示すドライバを利用しています。とても安定してきた上、速度も速いです。オススメするわけではありませんが。使っているPPAは次の通りです。

  • http://ppa.launchpad.net/mc3man/mpv-tests/ubuntu xenial InRelease                  
  • http://ppa.launchpad.net/mc3man/xerus-media/ubuntu xenial InRelease                
  • http://ppa.launchpad.net/oibaf/graphics-drivers/ubuntu xenial InRelease

 気がついている範囲で、voはvdpauが最も安定して速い。vaapiは遅い。openglはいまいちという傾向があります。現在はvdpauのみでテストしています。4K/Webm(PanasonicのビューティフルジャパンCM)をベンチマークしていますが、体感的に遅延のない円滑な再生ができるようになっています。やればできるんじゃないか?! RADEON R7 360 です。

 総括的追記2017年2月 ドライバアップデート

ハッピーです。ドライバがアップデートされて以前よりかなりよくなりました。2017/02/10

総括的追記2017年1月 あくまでmpv新旧でのお話です。

エントリーモデルのビデオカード/グラフィックボードで何ゆーてるんだと笑われそうですが、まだ17500円で買って1年経過していないのでもったいないです。現行品だったわけですし。

  • おそらくオープンソースで提供してもらっているRADEONドライバがあまりに遅すぎるので、4K描画にぜんぜん追いつかない(高いレベルを期待しなければOKともいいます)。
  • VDPAUもVAAPIも有効にできるので比較してみたが、ハードウェアアクセルを効かせたほうが動画再生などではフレーム落ち、遅延が激しい。現状当方では何の意味もない。
  • つまりソフトウェアデコードのほうが調子が明らかによい。FHD程度ではバレない(=顕在化しにくい)。だからHWアクセルは使わない。
  • ちなみにVLCは廃棄フレームがあるもののわりといいかんじ。そっちを使えよ、と。

ワークアラウンド

 一時的に解像度を下げて全画面再生。再生終了時に元に戻すことにした。解像度変更に伴いアイコンの位置がめためたになるのでスクリプトで保全、復元という手順を組み込んだ。(完璧ではないが、だいたいうまくいっている。この現象はポートレイト、ランドスケープの切り替えでも生じるものですね。)



以下の記述は、1920x1200解像度を使っていた時点での話です。昨年4Kモニターに変更以降は対応の仕方を変えました。フレーム破棄については目視、肉感と数字で確認しました。削除しても良いのですが記録なので残しておきます。



FHD程度時代の過去稿


日常的に使うのは、mpvになってしまいました。Windowsなら定義ファイルは、mpvディレクトリにおけばいいです。だいたいubuntuと共通化しています。

設定ファイルを載せておきますね。時点2016-04-12+2016-04-15

美しくも合理的でもないですが、参考までに。githubのお手本から作るのもいいかと思いますし、デフォルトで間に合えば何もしなくてもいいです。

ハードウェアアクセラレーションのメモ

参考:ハードウェアアクセラレーションを有効にする。 Linux MINT 18 ubuntu 16.04L...
おまけ:今朝2016-04-15のドライバがアップデートされて、vdapuが(実際に)有効になった模様です。RADEON 6550D。
mpv --vo=vdpau  *264*
   cplayer: Auto-loading profile 'vo.vdpau'
   cplayer: Playing: TEST_x264_ffmpeg.m4v
   cplayer:  (+) Video --vid=1 (*) (h264)
   cplayer:  (+) Audio --aid=1 --alang=und (*) (aac)
   cplayer:      Audio --aid=2 --alang=und (ac3)
   cplayer: AO: [alsa] 48000Hz stereo 2ch float
        vd: Using hardware decoding (vdpau).
   cplayer: VO: [vdpau] 1920x1080 vdpau
  vo/vdpau: Compositing window manager detected. Assuming timing info is inaccurate.
statusline: AV: 00:00:37 / 00:01:28 (42%) A-V:  0.000 Cache:  9s+36MB
[----------------------------------------+---------------------------------------------------------]
   cplayer:
   cplayer:
   cplayer: Exiting... (Quit)

AMD RADEON R7 360(2016-06-01)

libva info: VA-API version 0.39.0
libva info: va_getDriverName() returns 0
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/radeonsi_drv_video.so
libva info: Found init function __vaDriverInit_0_39
libva info: va_openDriver() returns 0
   cplayer: AO: [pulse] 48000Hz 5.1 6ch s32
        vd: Using hardware decoding (vaapi).
   cplayer: VO: [opengl-hq] 1920x1080 vaapi
  term-msg: FPS: 23.976

おそらくこれがデフォルトだと思いますが、VDPAU関連を組み込まない状態:VAAPIが有効でHWアクセルが効いているかんじがします。ffmpegでは効かない(ffmpegはvdpau必須)。

設定ファイル ~/.mpv/config 

Fluid motion video は無理だけど、 AMD RADEON R7 360で60frame を試行錯誤したパターン残骸あり。その他メモやら、試験過程の気づきなどもメモったままなので、見苦しいかと思います。参考にしたURLも書いてあります。今は、RADEON HD6500搭載機体です。

#vim: syntax=config
#mpv player config by ZiSH
#vim ~/.mpv/config #nano ~/.config/mpv/config 前者優先
# 2016-02 2015-07-24 小幅改定 初版作成 2015-03-19

#pause # クリックで再生開始。自動再生しない。自動再生の場合コメントアウト。
#https://github.com/Argon-/mpv-config/blob/master/mpv.conf
#svp そのうち考慮 input-unix-socket=/tmp/mpvsocket

# 全部キャッシュにいれる。⇒ 搭載メモリー 8GB以上前提。2GB程度のフルHD動画を3つ同時に再生するとして(笑)。
# すべてのパラメーターを検証したわけではない。gitを追っているが動かなくなるまで放置。エラーはでないが無効で意味がなくなったパラメーターもあるはず。てきとー。

#乾燥目対策。
#微妙な個人的好み。下に少しでも下げるとまぶたの位置が下がる。配置下げる。
#video-align-y=0.8
#パン pan w e 意外に便利
panscan=0.98 #19:10。

#force-window=yes

###########
# General #
###########

#save-position-on-quit
#no-border #好みで枠なし。メニューバーがないのでMPVに不要。qとかALT-F4で終了。右上隅がないだけです。すっきりしていて素敵。19:10(1920x1200)な画面だとメリットもあります。
msg-module                              # prepend module name to log messages
msg-color                               # color log messages on terminal
term-osd-bar                            # display a progress bar on the terminal
#有能そうuse-filedir-conf                        # look for additional config files in the directory of the opened file
#pause                                   # no autoplay
#keep-open                               # keep the player open when a file's end is reached
#framedrop=vo                            # drop frames in case your computer is to slow for realtime playback
#autofit-larger=100%x95%                 # resize window in case it's larger than W%xH% of the screen
deinterlace=auto                        # 'auto' does not imply interlacing-detection
#cursor-autohide-fs-only                 # don't autohide the cursor in window mode, only fullscreen
#input-media-keys=yes                    # enable/disable OSX media keys Xのマルチメディアキーは効きますので、MACオンリーの設定でしょうか。
cursor-autohide=250 #1000                    # autohide the curser after 1s
#fs-black-out-screens


# ビデオ Video Filters いらんと思う。デフォルトでよいです。
#stop-screensaver=yes

#[default]
#profile=R7
#[R7]
#vo=opengl-hq:interpolation:scale=ewa_lanczossharp:cscale=ewa_lanczossoft:interpolation-threshold=0.0:scale=spline36:sigmoid-upscaling
hls-bitrate=max                         # use max quality for HLS streams
ytdl-raw-options=format="(bestvideo+bestaudio[height>=?1080]/best)[protocol!=rtmp]"

#########
################################################################################
# ビデオ Video Output HW支援VDPAUにはドライバと追加ファイル、設定が必要14.04、16.04
################################################################################
# HW Accel 特に必要ないなどと言ってみる。以下voに応じて、hwdecなどが変化するようにしています。コマンドライン起動の場合に便利になります。
#https://wiki.gentoo.org/wiki/VDPAU mplayerとmpvは書式がだいたい同じ。
#vo=opengl-hq #vo=opengl #vo=vdpau #vo=vaapiNG #vo=xv (xvはとても古い)

#000)低速 Low quality: Radeon HD6550/ NVIDIA 710
vo=opengl
#001)##vo=opengl:interpolation
#011)#vo=opengl:interpolation:scale=ewa_lanczossharp:cscale=ewa_lanczossoft:interpolation-threshold=0.0:scale=spline36:sigmoid-upscaling
#111)中速 Medium quality:これぐらいが通常妥当。
#vo=opengl-hq:interpolation
#222)High quality configuration:
#vo=opengl-hq:interpolation:scale=ewa_lanczossharp:cscale=ewa_lanczossoft
#333) 次で決まり。with AMD R7 360
#vo=opengl-hq:interpolation:scale=ewa_lanczossharp:cscale=ewa_lanczossoft:interpolation-threshold=0.0:scale=spline36:sigmoid-upscaling
[vo.opengl]
hwdec=no
#video-sync=display-resample
#term-playing-msg='FPS: ${fps}'
#display-fps=60
[vo.opengl-hq]
hwdec=no
video-sync=display-resample
term-playing-msg='FPS: ${fps}'
display-fps=60
#60frame にする設定の場合に有効、これだけだとだめ。
[vo.vdpau]
hwdec=vdpau
[vo.vaapi]
hwdec=vaapi
[vo.xv]
hwdec=no
#hwdec=vaapi #は早送り等で不具合 #auto #別途組み込み要す 14.04。#hwdec=auto # no # autoは役に立たない場合あり。現状明示指定すべき。

[default]
hwdec-codecs=h264,vc1,wmv3,mpeg1video,mpeg2video #hevc,h265 は適当(非対応GPU。コマ落ちGPUの場合、voを(変えた)ほうがいい。

#フレームドロップ
framedrop=decoder+vo
#framedrop=no #ドロップさせない。
#deinterlace=yes #通常autoでいい。

##### 音声 audio settings
volume=100
# Specify default audio driver (see#--ao=help for a list).
#ao=jack jack設定済み&起動済みの場合。#
ao=alsa #デフォルト(pulse)でいい。#audio-buffer=10 # ボリューム #softvol=yes #softvol-max=200 #ノイズ注意

# Disable softvol usage, and always use the system mixer if available.
#softvol=yes #システムボリュームをあげると音声ノイズがのるので無効にした。
# Scale audio tempo by playback speed without altering pitch. (By default does nothing if playback speed is not changed. May introduce artifacts.)

##af=scaletempo
# 5.1はデフォルトではない。and upmix/downmix audio with a different format.
audio-channels=2.0 #audio-channels=2.1 #audio-channels=5.1

#2015-11-07オフにした。あんまり関係ない。デフォルトでOK s16le なので無効にすべき。音楽プレイヤーとしてハイレゾ再生する場合もそのままでうまくいきます。うちでは。
demuxer-rawaudio-format=s32le
#Choices: u8 s8 u16le u16be s16le u16be u24le u24be s24le s24be u32le u32be s32le s32be floatle floatbe doublele doublebe u16 s16 u24 s24 u32 s32 float double (default: s16le)

# Disable any automatic remix, _if_ the audio output accepts the audio format. of the currently played file.
#audio-channels=empty

#
#キャッシュなどの設定、通常指定なし、デフォルトで十分

#cache-default=150000 #cache-default=5550000 大差なし150000 2147483647
#影響大
#cache=512000 #CPUが10年前でGPUが現行という組み合わせなら、めいっぱいとるといい(SWAPが発生しない範囲で)。I/O負荷がなくなるのでスムーズになるよ。
cache=1024000 #1GB #cache=2048000
#cache-secs=1500 #cache-secs=3000

# fpsを動画に合わせる correct-pts=yes


###############################################
# OSD設定 ??? なぞ
###############################################

#cursor-autohide=250
# スクリーン操作オブジェクト Luaで拡張できるみたい。サンプルあり。
#osc=yes
#フルキーボード操作が好きなら、noで。マウスでだらだらしたいなら、yes。????
#osd-font-size=40 #osd-duration=3000
#osd-duration=0         #         Integer (0 to 3600000) (default: 1000)
#osd-fractions=yes     #         Flag (default: no)
#osd-border-size=0     #300
#osd-scale-by-window=yes
#osd-level=1 #0123 1が最適。
#osd-playing-msg='FPS: ${fps}'
#osd-color=
#############
# OSD / OSC # git hubのお手本まるぱくりして、↑からさっき変えた部分。
#############
#入力値範囲は、ソースのメッセージをみて転記してみた。
osc                                     # activate on screen controls

osd-level=1                             # enable osd and display --osd-status-msg on interaction
osd-duration=2500                       # hide the osd after x ms
osd-status-msg='${time-pos} / ${duration}${?percent-pos: (${percent-pos}%)}${?vo-drop-frame-count:${!vo-drop-frame-count==0: Dropped: ${vo-drop-frame-count}}}\n${?chapter:Chapter: ${chapter}}'

#osd-font='Hiragino Maru Gothic Pro'
osd-font-size=32
osd-color='#CCFFFFFF'                   # ARGB format
osd-border-color='#99000000'            # ARGB format
osd-shadow-offset=1                    # pixel width for osd text and progress bar
#早送りとかの時に出てくるシークバーのことです。通常のコントロールではないです。
osd-bar-align-y=0                       # progress bar y alignment (-1 top, 0 centered, 1 bottom)
osd-border-size=1                       # size for osd text and progress bar
osd-bar-h=10 #max50                     # バー高さheight of osd bar as a fractional percentage of your screen height
osd-bar-w=60 #MAX100                            # バー幅width of " " "60



# 字幕オフ sub-visibility=no
# キーバインドオフ #input-default-bindings=no
input.conf  読ませて、既定値を上書きで良い。

############################################
#スクリーンショット いつのまにか、エラーになっていたので、以下でさしかえ。
############################################

#screenshot-directory= 不要
screenshot-template=~/Pictures/mpv/%F-%P
screenshot-format=png
#filename-00:24:54.993.png sキーで取得。
#ファイルネーム(拡張子なし) + 再生時間 + .png

%F-%P 以下になります。ここではPNGを指定しているので:

再生ファイル名(拡張子を取り除いた)-再生時間ミリ秒 + 指定画像フォーマット

$ mpv 再生ファイル.mp4 なら、「再生ファイル-00:00:00.454.png」
マニュアル探れば、jpgの圧縮率指定など細やかな指定もできますね。

##################
# 似非FluidMotionVideo
#以下主に中間フレームを描画するパターンの試行。重いので注意。あんまり色々やっても仕方ないです。かなり自己満足に近い世界だと思います。AMD対応GPUをもっているユーザーならWindows10でMediaPlayerClassic HomeCinnemaをblueskyさんのffdshowフィルターを通じて、FluidMotionVideoオンで再生してみれば、本来のFMVのそれなりがわかります。さてさて、どうなんでしょ?! 満足できるかどうかはユーザーの受け取り方とソースの絵作りの特性によるって気がします。
特に、この60FPSでの再生はなんだか残像感ばかりが強調されて、個人的には価値無しというかんじですが、今後ドライバが変われば違うのかな。AMD以外のグラフィックでまともな速さのGPUは所有していないのでなんともいえませんが。

#https://www.reddit.com/r/linux/comments/2u3bpw/mpv_ver_073_can_interpolate_videos_to_60fps/
#https://github.com/mpv-player/mpv/wiki/Interpolation
#https://github.com/haasn/mpv/commit/7d10c9b76f39bfd2fe606b8702b39888d117c685
#http://sheekyforums.com/thread/52247417/technology/mpv-keep-it-simple.html

#vo=opengl-hq:interpolation:glfinish
#vo=opengl-hq:scale=spline36:sigmoid-upscaling
#vo=opengl-hq:interpolation:interpolation-threshold=0.0:scale=spline36:sigmoid-upscaling
#vo=opengl-hq:interpolation:interpolation-threshold=0.9:scale=spline36:sigmoid-upscaling
#vo=opengl-hq:interpolation:interpolation-threshold=2.9:scale=spline36:sigmoid-upscaling

#999)Insane quality:意味がないほど高品質設定。意味がない。
#vo=opengl-hq:interpolation:scale=ewa_lanczossharp:cscale=ewa_lanczossoft:prescale-downscaling-threshold=1.5

2016年4月11日月曜日

試してみた!(1) Windows Subsystem for Linux ,Ubuntu on Windows

現段階の結論:遅い。今後に期待。

続き zsh:試してみた!(2) Windows Subsystem for Linux ,Ubuntu on W...
  • 遅い。遅い。遅い。(うちだけかも。期待値が高いせいかも。)
  • UTF-8
  • zshは動くが一部機能が有効にならないみたい。bashのほうがよさげ。
  • いきなり「#」
  • 今の段階では、c:/........./AppData/Local/lxss/root に、.rcfiles を設置
  • 日本語UTF-8テキストで化けたり化けなかったり。
  • ふつうに、apt install , apt-get install でパッケージ追加できる。
  • ジャンクション、シンボリックリンクがだめ。


c:/.......................AppData/Local/lxss/rootfs/bin
UoW@/bin
だいたい標準で150個ほどコマンドが入ってる。一部追加した状態のリスト。10日ほど使っている自分のubuntu16.04betaでは160個ほどなので、だいたい全部入っていると考えていい。ちゃんと動けばけっこう困らないと思います。

あ、Perlが入ってないですね。いれなきゃ。 /usr/bin/perl

ls -x  最後に列表示を追記。

bash              binlist.txt    bunzip2              busybox
bzcat              bzcmp         bzdiff              bzegrep
bzexe              bzfgrep         bzgrep              bzip2
bzip2recover          bzless         bzmore              cat
chgrp              chmod         chown              chvt
cp              cpio         dash              date
dbus-cleanup-sockets  dbus-daemon    dbus-uuidgen          dd
df              dir         dmesg              dnsdomainname
domainname          dumpkeys         echo              ed
egrep              false         fgconsole              fgrep
findmnt              fuser         fusermount              grep
gunzip              gzexe         gzip              hostname
ip              kbd_mode         kill              kmod
less              lessecho         lessfile              lesskey
lesspipe          ln         loadkeys              login
loginctl          lowntfs-3g     ls                  lsblk
lsmod              mkdir         mknod              mktemp
more              mount         mountpoint              mt
mt-gnu              mv         nano              nc
nc.openbsd          netcat         netstat              nisdomainname
ntfs-3g              ntfs-3g.probe  ntfs-3g.secaudit          ntfs-3g.usermap
ntfscat              ntfsck         ntfscluster          ntfscmp
ntfsdump_logfile      ntfsfix         ntfsinfo              ntfsls
ntfsmftalloc          ntfsmove         ntfstruncate          ntfswipe
open              openvt         pidof              ping
ping6              plymouth         plymouth-upstart-bridge  ps
pwd              rbash         readlink              red
rm              rmdir         rnano              run-parts
running-in-container  rzsh         sed              setfont
setupcon          sh         sh.distrib              sleep
ss              static-sh      stty              su
sync              tailf         tar              tempfile
touch              true         udevadm              ulockmgr_server
umount              uname         uncompress              unicode_start
vdir              which         whiptail              ypdomainname
zcat              zcmp         zdiff              zegrep
zfgrep              zforce         zgrep              zless
zmore              znew         zsh              zsh5

無意味な検証:ubuntuでWindows10x64をマウントして、UoWの標準コマンドを実行してみる。(16.04下)

/media/ORE/W10x64/Users/ORE/AppData/Local/lxss/rootfs/bin
$ ./ls | ./grep ntfs | ./sed 's|ntfs|エヌティエフエス|'



lowエヌティエフエス-3g
エヌティエフエス-3g

エヌティエフエスwipe


期待通り。14.04LTSバイナリなのでこの手のコマンド互換がなければおかしいですもんね。というか、バイナリは、ubuntu.comに取りにいっている(apt)ので、同じじゃないとおかしい。

sedサイズをみてみるとこんなかんじ。ほんとうに同じだった。diffでも同じなので、同じ

●16.04beta2
-rwxr-xr-x 1 root root 73424  2月 12 09:20 sed
●UoW 14.04LTS相当

-rwxrwxrwx 1 ore ore 73352  4月 11 02:17 sed
●Linux Mint 17.3(14.04LTS相当)
-rwxr-xr-x 1 root root 73352  2月 13  2014 sed

■速度?! 今後に期待しよう。

バイナリそのままで、POSIX⇔WIN がどの程度なのか。これが気になるところ。期待は(現時点)では裏切られた。おっせーーーーーーーー!!

マイクロソフトのシニアなんちゃらがいうほど速くない。いうほど速くない。ぜんぜん速くない。まったく速くない。へそが茶を沸かすほどだ。

がんばれ、マイクロソフト。

以下余談:

最近、AMDの5000+という10年前の過去の遺物CPUを生ubuntuでときどき使っているが、それと比較して、ファイルのリストを返して 来るっていう単純作業ですら待ち時間差が体感で大きい。

ちなみにAMD Athron 64 X2 5000+ は、Intel Core i7-4790K(4.00GHz)のだいたい1/10の速度である。笑) (Xは起動するが作業はターミナルで、放置で動かしています。RDPがうまく ないのでSSHで)。このマシンにWin10は?! 動くだろうけど触れない(気分になれない)と思う。

仮想マシン(VirtualBox)より速い。が、が、が、Xを起動せずに()、ターミナルのまま動かせば、Virtualboxのほうが速そう。(笑) いや、速いと思う(たぶん)。

■中間総括

これが今後速くなるかどうかは、マイクロソフトの技術力が試される。ubuntuが14.04LTSだからとかいうのは関係ないだろうな。

■たいてい動くんじゃないの(だいたい合ってる)

LANGは日本語に設定して、と。ドットファイルを持ってきて、と。

.zshrc(日々使っているもの)のいくつかの機能が有効にならない。まだまだらしい。便利な機能が使えない。
.bashrc(同じく)。エスケープシケーンスが違うらしく、色が違うな。ま、いいか。趣味が悪くなってしまったが訂正はしない。そのままの互換性が確保されるのだから、放置しておけば、マイクロソフトが治すはず。

Xはいらんけど、ターミナルは、Windows側が高機能になるか、なんか使いやすいのがでてきてほしい。マニアックなのは僕はいらん。→これは期待するのは間違いだな。開発しないと言っているし。この出来だとないな。

■文字コード

心配なのは、文字コード。どこまでいっても文字コード。UTF-8で空気のように扱える環境がほしい。
つまり、文字コードを意識しないでPCは使いたいのだ。

→UTF-8のターミナルとして起動される。zshでは化けて、bashでは化けないとか現象的にはあるが、過渡期だからと思うので、気にしない。

UTF-8だと正常で、SJIS、EUCで文字化けするプロンプト文字列設定にしてある.zshrcなので,utf-8でなのがよくわかってよろしい。

同じテキストページャーでも、Zshから起動すると化けて、bashから起動すると化けない日本語文書とかけっこうあって、よくわからん。 zshのせいかも。というか、同じ挙動でないのはおかしいので。そのうち修繕されるだろう。

■バイナリはどこにとりにいっているのか

ubuntuなので、/etc/apt のリストを書き換えれば違うんだけど、いまんところ、UKのCanonical管理のubuntuサーバーにつなぎにいって落として来ている(IPアドレス)。

単にデフォルトのまま。北陸先端科学技術大学院大学とか、筑波大学とか、KDDIを指定したら国内からになるんだろうな。source.list のサーバ名を書き換えるだけ。

つまり、特殊なバイナリではないってことはわかった(疑ってごめんよ)。本当にubuntu上でコンパイルされたパッケージがそのまま動く。ファイルの中身は精査していないけれど。 上記で確認した。

以下、列記リスト /bin
UoW@/bin
-----------------------------------------
bash
bunzip2
busybox
bzcat
bzcmp
bzdiff
bzegrep
bzexe
bzfgrep
bzgrep
bzip2
bzip2recover
bzless
bzmore
cat
chacl
chgrp
chmod
chown
chvt
cp
cpio
dash
date
dbus-cleanup-sockets
dbus-daemon
dbus-uuidgen
dd
df
dir
dmesg
dnsdomainname
domainname
dumpkeys
echo
ed
egrep
false
fgconsole
fgrep
findmnt
fuser
fusermount
getfacl
grep
gunzip
gzexe
gzip
hostname
ip
kbd_mode
keyctl
kill
kmod
less
lessecho
lessfile
lesskey
lesspipe
ln
loadkeys
login
loginctl
lowntfs-3g
ls
lsblk
lsmod
mkdir
mknod
mktemp
more
mount
mountpoint
mt
mt-gnu
mv
nano
nc
nc.openbsd
netcat
netstat
nisdomainname
ntfs-3g
ntfs-3g.probe
ntfs-3g.secaudit
ntfs-3g.usermap
ntfscat
ntfsck
ntfscluster
ntfscmp
ntfsdump_logfile
ntfsfix
ntfsinfo
ntfsls
ntfsmftalloc
ntfsmove
ntfstruncate
ntfswipe
open
openvt
pidof
ping
ping6
plymouth
plymouth-upstart-bridge
ps
pwd
rbash
readlink
red
rm
rmdir
rnano
run-parts
running-in-container
rzsh
sed
setfacl
setfont
setupcon
sh
sh.distrib
sleep
ss
static-sh
stty
su
sync
tailf
tar
tempfile
touch
true
udevadm
ulockmgr_server
umount
uname
uncompress
unicode_start
vdir
vmmouse_detect
which
whiptail
ypdomainname
zcat
zcmp
zdiff
zegrep
zfgrep
zforce
zgrep
zless
zmore
znew
zsh
zsh5

2016年4月10日日曜日

モニターの縦と横を、マウスで切り替える。横着モード


新規にターミナルを開きます。ubuntu系は以下を発行します。CTRLALTT 
sudo apt install xrandr
Cinnamonのホットコーナーで画面のように設定すれば。コマンド叩かなくてもOK。metacityならショートカットキーをわりあてる機能がarandrには標準でありますが、当方、metacityでないので。
右下に割り当てています。

作成するコマンド switchmonitor.sh でも縦横トグル.sh でも。お好きなように。
gedit ~/bin/switchmonitor.sh においておけばいいかと思います。5行ですね。exitまで切り貼り。
考えてみれば、switchrotate.shじゃないと意味が通らないですね。モニター入れ替えるわけじゃない。ま、いいか。
初期案:廃止
#!/bin/bash
#@ 画面縦横切り替えするトグルコマンド。縦なら横に。横なら縦にする。
#if xrandr -q | grep -E 'DVI-0 connected primary 1080x1920' ; then
if xrandr -q | grep -E 'DVI-0 connected primary 1200x1920' ; then
xrandr -o normal
else
xrandr -o left
fi
exit
------
<
xrandr --output VGA-0 --off --output DisplayPort-0 --off --ou
tput DVI-0 --primary --mode 1920x1200 --pos 0x0 --rotate left

memo

CUIが役に立つ第2案



便利だったので新規案をおすすめします。 gedit /home/username/bin/tateyoko 
安直に tateyoko で切り替えます。exitまでを切り取って貼り、実行属性をつけてください。キーボードで tateyoko エンターの繰り返しです。
#!/bin/bash -x
#@ 1台だけならほとんどの場合、次のコマンドだけでOKのはず。
#@ 1920x1200 と1920x1080は共通でいける。ZiSH作成
if xrandr -q | grep -E ' connected primary 1..0x1920' ; then
    xrandr -o normal
else
    xrandr -o left
fi
exit

<<作業メモ
#if xrandr -q | grep "CRT1 connected"; then
#if xrandr -q | grep -E 'DVI-0 connected primary 1.00x1920' ; then
#if xrandr -q | grep -E 'DisplayPort-0 connected primary 1.00x1920' ; then
#if xrandr -q | grep -E 'VGA-0 connected primary 1.00x1920' ; then
#  xrandr --output LVDS --off
#  xrandr --output CRT1 --off
#  xrandr --output CRT1 --auto

#xrandr --output VGA-0 --off --output DisplayPort-0 --off --output DVI-0 --primary --mode 1920x1200 --pos 0x0 --rotate left
#xrandr --output VGA-0 --off --output DisplayPort-0 --off --output DVI-0 --primary --mode 1920x1200 --pos 0x0 --rotate normal

作業メモ
Cinnamonのホットコーナーで画面のように設定すれば。コマンド叩かなくてもOK。metacityならショートカットキーをわりあてる機能がarandrには標準でありますが、当方、metacityでないので。
右下に割っています。 
他のフレイバーの方は、コマンド叩くか、ショートカットを割り当てるか、オブジェクト(アイコン.desktop)にしてデスクトップにおいてください。マウスジェスチャーってなかったかな?!
そう煩雑に使うものではないので、ま、いいか。

2台以上の複数モニターの場合は、縦横混在では個別にしないとうまくないので、必要に応じて、

xrandr --output VGA-0 --off --output DisplayPort-0 --off --ou
tput DVI-0 --primary --mode 1920x1200 --pos 0x0 --rotate left

みたいなコマンドをモニターごとに設定するといいと思います。xrandrではじまる個別行でもいいし、一行で書いても同じです。今設定中の画面の絵は、サブ環境なので1台のみしか繋いでいません。

煩雑切り替えだとめんどうなので、コマンドシェル( CTRL+ALT+T)を起動して、tateyoko と打つだけにしたほうがいいですね。マウスは使いにくい。いいかんじになりました。

おまけ 何が書いてあるかというと、

xrandr -q でどういう環境か調べる。
接続している モニターがDVI-0なので、それが接続されていて、かつ縦(Left/Counterclockwise/左/ポートレイト)状態(1200が横幅です)になっていれば、ノーマル(ランドスケープ、横)に切り替える。横ならば、縦にする。トグルで動作します。


-o を使うことで一括、手抜きで書けます。 楽ちん。

2016年4月7日木曜日

ubuntu in coming to Windows10. Ubuntu on Windows!!

“Ubuntu on Windows”搭載「Windows 10 Insider Preview」Build 14316が160406に来たぞ。

http://poor-user.blogspot.jp/2016/04/1-windows-subsystem-for-linux-ubuntu-on.html

 

以下の記事はほぼ無意味に。

たいてい動くんじゃないのリスト

apt, ssh, rsync, find, grep, awk, sed, sort, xargs, md5sum, gpg, curl, wget, apache, mysql, python, perl, ruby, php, gcc, tar, vim, emacs, diff, patch...

なんかほとんど困らない。
avconv
time \ avconv -hwaccel vdpau -i input.mp4 -vcodec copy -acodec copy vdpau_video.mkv

こういうハードウェアアクセラレーションは無理っぽい。DXVA2に読み替えてくれるなら動くかな。 この例は、ffmpeg/avconvで、ハードウェア支援を使って、コンテナを変換するコマンドです。無意味な変換例。例文です。

18分弱 https://channel9.msdn.com/Events/Build/2016/P488



■たいてい動くんじゃないの。文字コードの取り扱いが不安。超不安。


自分の日々利用しているシェルスクリプトを見渡してみると、これでOK。そのまま動くはず。zshもいれたら動きそう。zshのない人生はない。

Xはいらんけど、ターミナルは、Windows側が高機能になるか、なんか使いやすいのがでてきてほしい。マニアックなのは僕はいらん。XはサポートしないとMSの中の人が言ってた。


心配なのは、文字コード。どこまでいっても文字コード。UTF-8で空気のように扱える環境がほしい。
つまり、文字コードを意識しないでPCは使いたいのだ。

■概略と予測込の今後


名称:

  • Ubuntu on Windows . UoW なんて呼ばれるのかな?! Canonical側。
  • Windows Subsystem for Linux と現段階で呼ばれてるらしい。MS側。

時期:予測込 

もう来た。“Ubuntu on Windows”は、Windows 10 Insider Preview Build 14316 に入ってる。「ubuntu入ってる」 ほうのWindowsが来たな。

だから、以下、意味なし。実践して評価するといい。


アーリアダプタ向け:
Canonicalが14.04LTSのUoWをほどなく提供するらしい。どういう形式かは不明。Windows側の対応が必須なのでCanonical単独では動作しないので、どうなるんだろう。すでにlxなんちゃとかいうのがリリースされているので、それか、それなのか。それなんだろうな。よくわからん。


ふつーの人向け:
7月あたりに、MSのストア経由で導入できる。周年アップグレードの一部ってことかも。もっと早期にでるという記事もみた。4月中か。Windows10のアレに含まれるみたい。テスト参加しないとだめだけど。


普通の人向け:
導入しません。何に使うものかよくわかりません。知ってて損はないけれど。

■どう動くのか逆WINEですよね。いうなれば。


だいたいこれまでの自分が試したソリューションでいえば、SFUの現代形だろうか。と思ったらそれも違うな。SFLだっけ。略称はこんなかんじになるのかな。SFUはShellがあれだしいきなりなんか使いにくい。なじめない。いまどきのLAMP時代にはちょっとアレなので実際使っているひとはいなかった気がする。コマンドはGNUだよね。やっぱ。SFUはCygWinと同様、独自コンパイルであることにかわりはないので、SFUの現代形といういうのは間違っているな>自分。

何度も書いてきたが、技術はあれとして、使い勝手はディスコンのCoLinuxが今回の方法に近いと想像できる。CoLinuxは開発が再開しないか気になっていた。これかなり速いんだけどそれを上回らなかったら、笑い者なのでまぁ、たぶんだいじょうぶ。

仕組み概念では「逆WINE」だろう。コンセプト的にはそうだ。CoLinuxと違うのは、今回の仕組みを実現するのにマイクロソフトのリソース(ソースと人)が使えるということで、たぶんとても高速に動くと思う。WINEが20年かけた道をざくざくと走破する。マイクロソフトが魔法といっていたけど魔法じゃないんじゃない。コンピューティングが通ってきた道そのものだ。

「bashが来る」ってのは、シンボリックな表現であって、sed、findなんかも最初から来る。というか、いろいろ読んでいると、アプリ導入コマンド aptがサポートされるので、そのままいれちゃえばいい。動かないものは、Windows側で対応される、されるべき。魔法なら特にね。

■カンファレンスの絵とその他から:推察してみる


発表されたのは、
ubuntu14.04 LTSベース。夏までの実装で16.04LTSベースになる。Canonical担当者のブログの言をまとめるとそういうことだ。ubuntu16.04LTSはちなみに現在ベータ2。4月下旬にラウンチされる。

気になるのは、Xは?!ってところだけど。たぶん時間の問題だし、自分の場合生で動かなくてもいい。そこまでできれば、MSすげーなんだけど。たぶんいろいろ面倒なことが多いのでやらないんだろうな。(やらないことで確定している様子)


http://blog.dustinkirkland.com/2016/03/ubuntu-on-windows.html


ところで、
apt-get が非推奨になりつつある中、aptがあればだいじょうぶ。aptがあるということは背後でdpkgが動いているので、パッケージ管理システムが動いている。たぶんぜんぱんに大丈夫。マイクロソフトがプレゼンで「BASHが来るよ」と大見出しにしたので、それがシンボリックなコピーだと気づかない人がメディア含めて多すぎる感があるのかも。

ふたつのDLNAサーバ、miniDLNAと併用する、universalmediaserver

トランスコードが華のUniversalmediaserverは、JAVAなので、WindowsでもLinuxでも同じ環境が簡単にできてしまいます。MAC OS-Xでも使えます。

2016-05-27時点、2.3.0を使っています。とても調子がいいため、次のバージョンはスルーするかもしれません。

ささっとデフォルト設定と違うところ、キャプチャ。詳細設定 Configuration file for UMS はここをみています。基本的にGUIで設定して不満があれば(手動で編集が必要になれば)使ってみるというスタンスでいいかと思います。CPUもGPUもネットワークもストレージもぜんぶ高速っていうサーバーマシン、環境の場合は、デフォルトの範囲での設定で良いと思います。



映像設定タブ

デフォルトでまず使ってみるべきですが、メモリーに余裕があれば、

  • 最大バッファ、200MB-->400MB、きっと余っていると思うので好きなだけどうぞ。推奨は200MB。不具合がでれば200に戻します。
  • すべての字幕を無効にする。外国語学習向けか。自分には不要。
  • GPUアクセラレーションを有効にする。Windowsの場合はドライバの出来がいいのでメリット大(DXVA2)。ubuntuの場合は有効になるけれども効果がなかったりします。当方のVDPAU(設定は済ませています。生のffmpegでも時間差がないため。無効)。その後有効にしてみました。GPUを変えて不具合がでたので今日は無効になっています。

デフォルトは判別してトランスコードです。いろいろテストしてみましょう。変換しない拡張子ファイル:例


m4v

強制変換するファイル:(1)空白か、(2)ありったけ記述してテスト:例 デフォルトでOK。
mkv,mp4,mov,wmv,avi,m2ts,ts,m2t

コンテナ

古いビデオカメラ映像とか解像度は低い(HVGA)くせにトランスコードかけないと再生できない場合などがあります。ですから貴殿の手持ちの映像コンテナ、コーデックに合わせてください。個人的には海外旅行で撮影した日本製カメラのソース再生で四苦八苦しました。 mediainfoでコンテナ、コーデックが確認できます。Windows10共通コマンド。


sudo apt install mediainfo mediainfo-gui

Windows10の場合、k-lite codec pack standardを公式サイトのミラーからダウンロードしていれましょう。これに、コーデックやツール、MPHCなどが含まれます。スタンダード版で十分です。

コーデック

コーデックが曲者ですが、結局のところ、libx265などを使ってテストしてみた範囲でいえば、比較として、H.264が圧倒的に汎用性が高いので、無理にHEVCは使うべきではないでしょう。また、ビット深度もノーマルでないとうまくないです(12bitとかだめ。だめじゃないけどだめ。chromecastは対応していませんし。つまり、8bitが無難です。)。

mpeg2にするメリットはありませんね。※アンドロイド。

「H.264で、MP4/M4V/MKV」が理想的。ビット深度はノーマル。が結論。枯れていますからね。当たり前にサポートされていますから。

中間総括:安全確実低負荷、H264/AVCをビット深度8bitでMP4/M4Vで格納しておく

m4vは、自分の場合、機器からひっぱったファイルをローカルPCでコンバートしたファイルにつけるマイルールにしています。ですから、アップル信仰とは関係ないのです。H.264/AVCでM4Vコンテナ。ffmpeg、handbrake-cli をコマンドラインで使った変換ファイルです。実質mp4とニアリーイコールなので。ファイル検索した時に、みつかりやすい拡張子にしたわけです。これはこれで便利な使い方だと思います。自画自賛(たいしたことではないです。拡張子を探してみたってだけの話)。

音声設定タブ

  • クライアント側がステレオなら2chと決め打ちしておく。
  • AC3音声を保持しない。理由⇒再生クライアント側アプリまたはレンダラーが対応していない場合があるため。対応しない場合無声になります。オーサリングなどをしていた残骸?!などで、AC3になっている素材を再生する場合などに困るかもしれません。保持しないにしておくといいかも。

複数インスタンス起動


UMSをWインスタンス起動という手もあります。片方は、変換する。片方は変換しない設定という考え方です。minidlnaのトランスコード対応はコンパイルしたもののまともではなかったので、これをWで起動するのはあまりメリットがない気がします。

まとめます。こだわる人には、

minidlna 1つ起動。トランスコードなし。
UMS 1つ起動。トランスコードあり、トランスコードなしでわけるのもあり。 あるいは、TRANSCODEフォルダ(使い方、後日詳細予定)を活用してみる。後者でUMSのインスタンスはひとつで済みます。そのほうが合理的。

ぐらいがいいのではないかと。 慣れたら、TRANSCODEフォルダを覗いて再生してみてください。仕組みが理解できると思います。なるほど、と。

とにかくメモリーはさほど食わないし負荷もほとんどないので、W DLNA/UPnPエンジンでどうぞ。

余談というか、使いこなすための核心的な話

未稿:メモのメモ

ubuntu上で、BDMVはややこしいので、さくっとBDAVをオーサリングするテストファイル、m2ts形式にしたかなり動きの激しい車載動画(4分位、1GB)という巨大ファイルがネットワークが足を引っ張っていない環境では、余裕でトランスコードなしで再生できました。
 
環境依存というか、いろいろあります。以下、人=CASE、場合と読み替える。

変換速度が速いCPUと環境を持っている人
ネットワークが速い人。
クライアントが速い人。
クライアントのアプリが速い人。クライントのデコード対応が充実している。
chromecastを使う人、使わない人。
chromecastをアプリ内部から呼び出す人、android全体をキャストする人

当方、PS4とSONY2015年夏以降モデルのTVとか機材としてもっていないので、いろいろテストしてみたいのですが、ちょっとアレです。現代の高級AVアンプも持っていないので。

ここで中座。そのうち記述。

結論からいうと、GPU支援の確実性からいえば、Windows10がよい選択な気がするけれど(そうでもない)、i7あたりのCPUの人なら、リアルタイムトランスコードも速いでしょう。10分をffmpegで変換するのに11分かかるシステムと3分で済むシステムはどちらがいいでしょうか。速いマシンのほうがリアルタイムトランスコード向きなのはわかってもらえると思います。電気代はかかるかもしれません。

高速な環境の人はあまり悩む必要はない。これも中間総括。
トランスコードの必要がなければかなり遅いCPUでもネットワークさえ速ければ十分DLNAサーバーとして活躍できます。つまり、ファイルのコーデックとコンテナな理想的なものに揃えておきましょうということです。速さは正義なんですね。


(このセンテンス勘違い。記録のため残す)クロームキャストは、気がついた範囲でいえば、2分程度のFHD動画H.264をバッファする。トランスコードなしだとががーとファイル転送されますね。当方のは第2世代。とにかく何かひっかかるのはだいたいHEVCにしたファイルです。いろいろテストするのが好きなので、ビット深度変えてみたファイルを作ってみたりした感想でいえば、DLNAで使う限りでいえばいまんところ、意味ないな、という結論。


ダウンロード、公式サイト
http://www.universalmediaserver.com/


memo:
mkv,mp4,m4v,mov,wmv,avi,m2ts,ts,m2t 

2016年4月2日土曜日

GPU acceleration ,New AMD/Radeon/ATI Driver

ubuntu16.04 beta2  におけるオープンソース新ドライバ環境のハードウェア支援を試す。for AMD/ATI Radeon

試行中の記録:2016年4月9日新しいドライバを入れたので再度テスト。+2016年4月15日のドライバをいれたので再度見てみよう。


VDPAUが効いてる。30秒までが無効。後半が有効。Windowsのアクセルみたいに劇的に効かないのがアレですが。mpv。ちなみに低遅延カーネルで起動しています。気のせいかなぁ。


HWアクセルオン$ mpv --vo=vdpau *yes*
   cplayer: Auto-loading profile 'vo.vdpau'
   cplayer: Playing: vdpau_video_yes_hwpau.mkv
   cplayer:  (+) Video --vid=1 (*) (h264)
   cplayer:  (+) Audio --aid=1 (*) (aac)
   cplayer: AO: [alsa] 48000Hz stereo 2ch float
        vd: Using hardware decoding (vdpau).
   cplayer: VO: [vdpau] 1920x1080 vdpau
  vo/vdpau: Compositing window manager detected. Assuming timing info is inaccurate.
statusline: AV: 00:00:47 / 00:01:27 (53%) A-V:  0.000 Cache: 10s+16MB
[---------------------------------------------------+----------------------------------------------]
   cplayer:
   cplayer:
   cplayer: Exiting... (Quit)
HWアクセルオフ$ mpv --vo=opengl *yes*
   cplayer: Auto-loading profile 'vo.opengl'
   cplayer: Playing: vdpau_video_yes_hwpau.mkv
   cplayer:  (+) Video --vid=1 (*) (h264)
   cplayer:  (+) Audio --aid=1 (*) (aac)
   cplayer: AO: [alsa] 48000Hz stereo 2ch float
   cplayer: VO: [opengl] 1920x1080 yuv420p
statusline: AV: 00:00:51 / 00:01:27 (58%) A-V:  0.000 Cache:  9s+12MB
[--------------------------------------------------------+-----------------------------------------]
   cplayer:
   cplayer:
   cplayer: Exiting... (Quit)
うーん。10%-15%位、グラフでは負荷が減っているかんじはします。GPUがそもそもしょぼいですね。あはは。Windowsの印象はこの機体にR7-360を刺している時だから、そもそもぜんぜん性能が違うわけで。
VLC3.0.0betaはDecorderエラー。効いてない。


たとえば、ffmpegコンバートのアクセラレーションは次のコマンドで有効になりますが、時間の差がない。=効いていない気がする。 1秒のテストファイルなので差がないのか。少し前の印象です。


time ffmpeg -hwaccel vdpau -i HEVC.mp4 -vcodec libx264 -acodec copy -preset ultrafast hevc_264_with_vdpau.m4v

追記。こちらは有効無効で処理時間に差はないです。効いてないみたいです。今、R7 360は別の機体に刺しているのでこっちに持ってきてみるかなぁ。

起動後いろいろ確かめてみよう。




確かめてみよう。
vdpauinfo

grep -i vdpau /var/log/Xorg.0.log
[     9.179] (II) RADEON(0): [DRI2]   VDPAU driver: r600

今日は、これ。ロールバックされた?!
[     8.819] (II) RADEON(0): [DRI2]   VDPAU driver: r600
 


mplayer -vc help | grep --color vdpau
ffmpeg12vdpau ffmpeg    working   FFmpeg MPEG-1/2 (VDPAU)  [mpegvideo]
ffmpeg12vdpauold ffmpeg    working   FFmpeg MPEG-1/2 (VDPAU)  [mpegvideo_vdpau]

ffwmv3vdpau ffmpeg    problems  FFmpeg WMV3/WMV9 (VDPAU)  [wmv3]
ffwmv3vdpauold ffmpeg    problems  FFmpeg WMV3/WMV9 (VDPAU)  [wmv3_vdpau]
ffvc1vdpau  ffmpeg    problems  FFmpeg WVC1 (VDPAU)  [vc1]
ffvc1vdpauold ffmpeg    problems  FFmpeg WVC1 (VDPAU)  [vc1_vdpau]
ffhevcvdpau ffmpeg    working   FFmpeg HEVC / H.265 (VDPAU)  [hevc]
ffh264vdpau ffmpeg    working   FFmpeg H.264 (VDPAU)  [h264]

ffh264vdpauold ffmpeg    working   FFmpeg H.264 (VDPAU)  [h264_vdpau]
ffodivxvdpau ffmpeg    working   FFmpeg MPEG-4,DIVX-4/5 (VDPAU)  [mpeg4]
ffodivxvdpauold ffmpeg    working   FFmpeg MPEG-4,DIVX-4/5 (VDPAU)  [mpeg4_vdpau]


※HEVC

ちなみに、4/9に入れた新バージョン以降、VLCのVDPAUをオンにしていてもこけなくなりました。だた、CPU使用率をみていると効いているとはいえない。効いていません。

ついでに最近まで勘違いしていたのですが、ultrafastは「圧縮をあまりしない代わりにファイルサイズがでかくなる(現象的にも)」です。「だがしかし、伸長する場合にCPUの負荷が低いので低スペックスマホなどではかえって軽く再生できるよ」。と理解しました(現象的にも)。そうなんです。ちゃんと設定されたacネットワークなら動画飛ばすのも十分な速度ですよね。デコード負荷が小さければ古いアンドロイドなんかでもけっこうがんばります。スマホのGPU性能とスマホの再生アプリがHW支援に対応しているかどうか?!というのも絡みますけど。すべてが速ければ何も問題ないんです。コンピューティングはたいていそうだけど。

mpvでVDPAU 16.04 beta2

mplayerならこんな感じ:


mplayer -vo vdpau h.264ファイル.mp4

mpvならこんなかんじ:


mpv --hwdec=vdpau h.264ファイル.mp4
とか。
mpv --vo=vdpau h.264ファイル.mp4

configでグルーピングして分岐するようにしておくと便利です。

ハードウェア加速対象フォーマット、かつ深度10bit以下でないとそもそもHW支援は効きません。H.264でもです。androidでも同じですよね。

mpv *x264*.mp4                                  
Playing: x264-AAC.mp4
 (+) Video --vid=1 (*) (h264)
VO: [vdpau] 1920x1080 yuv420p
[vo/vdpau] Compositing window manager detected. Assuming timing info is inaccurate.
FPS: 23.976

mpv のconfigは、以下の3点セットで書き換えておくとよいです。そのうちhevcサポートもという記事をみた記憶があるんですが、いつかHEVC対応されるとうれしいですね。SDカードのないスマホ使っているもんで。

vim ~/.mpv/config or vim ~/.config/mpv/config 前者優先

vo=vdpau 昔はこの指定だった模様?! 以下間違いかも。(mpvのススメ mpv のconfigを参照してもいいですが、本家のマニュアル読んだほうがいいです。)

vo=opengl
hwdec=vdpau
hwdec-codecs=h264,vc1,wmv3,mpeg1video,mpeg2video

個別に書くとめんどくさいことに気がついたので、mpvの設定例 をまんま載せました。
http://poor-user.blogspot.jp/2016/04/mpv-player.html

3行目はデフォルトのはずなので、記入はいらない気もしますが、セットで切り貼りしてみてください。
voが複数行ないかチェックしてください。


当方の環境では、VLCは不安定です。 HW支援を有効にすると使い物にならないです。明示的に無効にしました。環境に依存するようなので一概にはいえません。

vdpauinfo/AMD HD6550/sumo(前時代)の場合

このクラスのGPUは今日現在3000円位で売られています。先日調達したAMD R7は17000円でした。予算に都合がつけば1万円以上のGPUがよろしいかと思います。安定しているかどうかは別。
vdpauinfo
display: :0   screen: 0
API version: 1
Information string: G3DVL VDPAU Driver Shared Library version 1.0

Video surface:

name   width height types
-------------------------------------------
420    16384 16384  NV12 YV12
422    16384 16384  UYVY YUYV
444    16384 16384  Y8U8V8A8 V8U8Y8A8

Decoder capabilities:オレンジがサポートされている
name                        level macbs width height
----------------------------------------------------
MPEG1                           0  9216  2048  1152
MPEG2_SIMPLE                    3  9216  2048  1152
MPEG2_MAIN                      3  9216  2048  1152
H264_BASELINE                  41  9216  2048  1152
H264_MAIN                      41  9216  2048  1152
H264_HIGH                      41  9216  2048  1152
VC1_SIMPLE                      1  9216  2048  1152
VC1_MAIN                        2  9216  2048  1152
VC1_ADVANCED                    4  9216  2048  1152
MPEG4_PART2_SP                  3  9216  2048  1152
MPEG4_PART2_ASP                 5  9216  2048  1152

DIVX4_QMOBILE                  --- not supported ---
DIVX4_MOBILE                   --- not supported ---
DIVX4_HOME_THEATER             --- not supported ---
DIVX4_HD_1080P                 --- not supported ---
DIVX5_QMOBILE                  --- not supported ---
DIVX5_MOBILE                   --- not supported ---
DIVX5_HOME_THEATER             --- not supported ---
DIVX5_HD_1080P                 --- not supported ---
H264_CONSTRAINED_BASELINE      --- not supported ---
H264_EXTENDED                  --- not supported ---
H264_PROGRESSIVE_HIGH          --- not supported ---
H264_CONSTRAINED_HIGH          --- not supported ---
H264_HIGH_444_PREDICTIVE       --- not supported ---
HEVC_MAIN                      --- not supported ---
HEVC_MAIN_10                   --- not supported ---
HEVC_MAIN_STILL                --- not supported ---
HEVC_MAIN_12                   --- not supported ---
HEVC_MAIN_444                  --- not supported ---

Output surface:

name              width height nat types
----------------------------------------------------
B8G8R8A8         16384 16384    y  NV12 YV12 UYVY YUYV Y8U8V8A8 V8U8Y8A8 A4I4 I4A4 A8I8 I8A8
R8G8B8A8         16384 16384    y  NV12 YV12 UYVY YUYV Y8U8V8A8 V8U8Y8A8 A4I4 I4A4 A8I8 I8A8
R10G10B10A2      16384 16384    y  NV12 YV12 UYVY YUYV Y8U8V8A8 V8U8Y8A8 A4I4 I4A4 A8I8 I8A8
B10G10R10A2      16384 16384    y  NV12 YV12 UYVY YUYV Y8U8V8A8 V8U8Y8A8 A4I4 I4A4 A8I8 I8A8

Bitmap surface:

name              width height
------------------------------
B8G8R8A8         16384 16384
R8G8B8A8         16384 16384
R10G10B10A2      16384 16384
B10G10R10A2      16384 16384
A8               16384 16384

Video mixer:

feature name                    sup
------------------------------------
DEINTERLACE_TEMPORAL             y
DEINTERLACE_TEMPORAL_SPATIAL     -
INVERSE_TELECINE                 -
NOISE_REDUCTION                  y
SHARPNESS                        y
LUMA_KEY                         -
HIGH QUALITY SCALING - L1        -
HIGH QUALITY SCALING - L2        -
HIGH QUALITY SCALING - L3        -
HIGH QUALITY SCALING - L4        -
HIGH QUALITY SCALING - L5        -
HIGH QUALITY SCALING - L6        -
HIGH QUALITY SCALING - L7        -
HIGH QUALITY SCALING - L8        -
HIGH QUALITY SCALING - L9        -

parameter name                  sup      min      max
-----------------------------------------------------
VIDEO_SURFACE_WIDTH              y        48     2048
VIDEO_SURFACE_HEIGHT             y        48     1152
CHROMA_TYPE                      y 
LAYERS                           y         0        4

attribute name                  sup      min      max
-----------------------------------------------------
BACKGROUND_COLOR                 y 
CSC_MATRIX                       y 
NOISE_REDUCTION_LEVEL            y      0.00     1.00
SHARPNESS_LEVEL                  y     -1.00     1.00
LUMA_KEY_MIN_LUMA                y 
LUMA_KEY_MAX_LUMA                y 





sumoだからかもしれないが誤差=10%-30%ぐらいしか変化がない。効いているのは効いてます?! mpeg2のほうが得意なのかもしれません。この古いGPU。

関連ドライバなどは以下の通りの導入状況です。ii=インストールされているって意味。

» dpkg -l | grep "AMD/ATI"
ii  xserver-xorg-video-ati                      1:7.6.1-1ubuntu2                           amd64        X.Org X server -- AMD/ATI display driver wrapper
ii  xserver-xorg-video-radeon                   1:7.6.1-1ubuntu2                           amd64        X.Org X server -- AMD/ATI Radeon display driver
04/02 15:14:50 /home/zish/Desktop
» dpkg -l | grep "vdpau"      
ii  libvdpau1:amd64                             1.1.1-3ubuntu1                             amd64        Video Decode and Presentation API for Unix (libraries)
ii  mesa-vdpau-drivers:amd64                    11.1.2-1ubuntu2                            amd64        Mesa VDPAU video acceleration drivers
ii  vdpau-driver-all:amd64                      1.1.1-3ubuntu1                             amd64        Video Decode and Presentation API for Unix (driver metapackage)
ii  vdpauinfo                                   1.0-1                                      amd64        Video Decode and Presentation API for Unix (vdpauinfo utility)