Gentoo Linux上でffmpeg 3.0.2をemergeしようとしたら依存関係でハマった話
ちょろっとしたメモです
media-video/vlcがffmpeg-2.8.7を引っ張っていた(media-video/ffmpeg:0/54.56.56を引っ張っていた)
/usr/portage/media-video/vlc/vlc-2.2.2.ebuild を見る
119行目:postprocフラグがffmpeg 2.2.xを引っ張っていることが分かる
164-166行目:vdpauフラグがffmpeg 2.2.xを引っ張っていることが分かる
このuseフラグを落として
(ついでに cp /usr/portage/media-video/vlc/vlc-2.2.2.ebuild /usr/local/portage/media-video/vlc/vlc-2.2.3.ebuild
して ebuild digest
とかして)
emerge -N media-libs/ffmpeg virtual/ffmpeg vlc
したら通った
ところどころ嘘かもしれない
以上
このままだとemerge @preserved-libs
したときにVLCのコンパイルこけます
configure: error: libavutil versions 55 and later are not supported.
(2016/05/26 追記)
Nexus5のWi-Fiで特定のチャンネルを使うAPにつながらない件(もしかしたら海外端末一般?)
概要
他人様のNexus5からうちのAPが見えずに四苦八苦したので調べたメモ
まとめブログ並に引用ばかりになります。
出発点
Nexus5からWi-Fiをつなごうとしてびっくり。APがそもそも見えないので、つながらないどころの騒ぎではない。
特定のチャンネルが繋がらない
のコメントにあるように、特定のチャンネルを拾いません。
SIMを挿せば繋がるようになる
Nexus Help Forumのコメントhttps://productforums.google.com/d/msg/nexus/IOfMvlMrnWw/VOL9RAdg3PUJ によれば、SIMを挿すことによって "The wireless regulation" が変更される、とあります。
デフォルトではアメリカのレギュレーション
によれば、"Nexusに限らず、アメリカのWi-fiチャンネル規制の都合で海外端末は12,13chには制限をかけていることが多いようです。"
SIMなしでも繋がるチャンネルについて
List of WLAN channels - Wikipedia, the free encyclopedia を参照すると、北米では、2.4GHz帯では1〜11ch、5GHz帯では36, 38, 40, 42, 44, 46, 48chが制限なく使えるようです。そのうち、日本で使えるのは1〜11chと36, 40, 44, 48chです。このあたりを設定しておけば、今後のトラブルも少し減らせるでしょう。近所との干渉を避けるための自由度が少し減ってしまいますが……
蛇足
北米で使われるチャンネルは、ヨーロッパでは使ってはいけないことになっているチャンネルを含んでおり、なぜデフォルトで北米レギュレーションになっているのかは不思議に思うところで、かなりの理不尽さを感じます。理由が知りたいところ。
あと、先ほど引用したwikipediaの "List of WLAN channels" のページですが、5GHz帯のところの日本の記述がいろいろ間違えている(DFSと書かれるべきところにYesと書いてあるとか)ので、そこは自分で確認してください。
現在は修正されています(2016/09/10)
蛇足2
Nexus 5 Teardown - iFixit によればBroadcom BCM4339がWi-Fiには使われていて Welcome Wireless IoT & WICED™ Customers! | Cypress Semiconductor とくに変な制限はなさそうです
Zenfone5にLollipopな純正ROMを入れた
概要
Zenfone5にLollipopなStock ROMを入れた
手順
準備
ZenFone 5 (A500KL) | スマートフォン | ASUS 日本 から バージョン JP_12.4.5.57 UL-ASUS_T00P-JP-12.4.5.57-user.zip をダウンロードしてくる
adbを使えるようにするか、microSDHCカードを用意する
wipe/factory reset
I am いわゆるクリーンインストール教徒
ZenFoneを工場出荷時に戻す方法 これを参考に
電源OFF状態から、電源ボタンとボリュームダウンキーを同時長押しでリカバリに入る
ボリュームキーで項目の選択、電源ボタンで決定
Enter SD download modeを選択
wipe data/factory resetを選択してYesを選択
update/ROM焼き
internal storage/内蔵ストレージを使う場合
$ adb push UL-ASUS_T00P-JP-12.4.5.57-user.zip /data/media/
してapply update from internal storageを選択
SDカードを使う場合
実際にやっていないが、SDカードのトップディレクトリにファイルを置いて、apply update from external storageを選択すればできると思う
wipe/factory reset
念の為もう1回やる(おまじない的な安心感を得るための宗教的行事)
更新してみて
- DalvikからARTに変わったせいだと考えるのは早計だが、全体的に若干軽い感じがする
- ヘッドフォン端子の音が変わった: KitKatのときは信じられないほど音が悪かったが、普通の音になった
- 相変わらず起動は遅い: ブートアニメーションが始まるまでが異様に長いので、KitKatのときよりもマトモにブートしてるのか心配になる挙動
- スクフェスの判定が少しだけ沈んだ気がする: 2016/03/18現在の最新バージョンでの判定調整でKitKat:-4, Lollipop:-2くらい。2016/03/4のアップデート以前はKitKatで+4にしてました。
- FGOが軽くなってほしかったけど大差なかった
- KitKatのときはAudio Wizardをゲームモードにしないと動かなかったルイファンのキングブレード (aka キンブレ) のアプリ KingBlade - Google Play の Android アプリ が普通に動く(上記のヘッドフォン端子の音が変わったに関連する)
- KitKatのときの「ASUS純正のこれ、いくらなんでもひどくない?」みたいなのが減った(個人の感想です効果には個人差が以下略)
- スクショ入れ忘れたので追記 (2016/03/18)
- プリインアプリが凶悪である一方で、無効化できるアプリが増えてる(追記:2016/03/18)
これ書き忘れてました tz sbl1 rpm aboot rpnm modem adi asusfw が焼かれてますめも:Zenfone5 ロリ '"Installing Iimage" {tz, sbl1, rpm, aboot, tz, sbl1, rpnm, aboot, modem, adi, asusfw}'
— ゆーいちろー@Opusはいいぞbot (@Yuichiro_S) 2016年3月17日
ブートローダまわりとmodemとasusfwが書き換わってるのはわりと気になるところですね (追記:2016/03/20)- バッテリ残量表示がなんか変わった気がします。すこし低めの数字が出るような……? 数字はすぐ減るけれども稼働時間的にはほとんど変わっていないような、減ってから粘るような感触です。 (追記:2016/03/20)
- 画面上にメニューボタン出ません、Recentボタン長押しに割り当てるしかなさそうです (追記:2016/03/20)
気付いたことがあったら書き足していきます
tmuxでペインの表示が更新されなくなる問題と端末のリセット
バイナリファイルを標準出力に投げてしまって端末エミュレータの表示がぶっ壊れるということがありますが、 tmuxでペインの表示が更新されなくなるときにもこれは使えた、という話です。
何も表示されなくなる、完全に無反応になる(^C
を入力すると反応はありますが)、という見た目に騙されて、
なにかしら自分の知らない変なモードに入っているのだと思い込んでいましたが、単に表示がぶっ壊れているだけのようです。
そもそも変な文字を標準出力に流したりしてない不思議なシチュエーションでこの現象が発生するんですよね……謎です……
知識が偏っていて、化石のような
$ echo -e \\033c $ echo ^[c
あたりは知っていたんですが、なんと
$ reset
を叩けばいいだけでした。reset
コマンドはncurses
に入っているようです。
reset
はtset
へのsymlinkです。以下man reset
より引用
When invoked as reset, tset sets cooked and echo modes, turns off cbreak and raw modes, turns on newline translation and resets any unset special characters to their default values before doing the terminal initialization described above. This is useful after a program dies leaving a terminal in an abnormal state. Note, you may have to type <LF>reset<LF> (the line-feed character is normally control-J) to get the terminal to work, as carriage-return may no longer work in the abnormal state. Also, the terminal will often not echo the command.
AndroidでPNGにアルファチャンネルを付加 (pic.twitter.com 改悪対策)
毎度毎度余計なことをしてくださるTwitterのあれやこれやの回避策
ロスレスで上げようとしているのに勝手にJPEGにされるのの対策として
あたりがありますが、アルファチャンネルを付加できるアプリを知りませんでした。
探したら案外あっさり見つかったのでメモ。
使い方は普通のGIMPとかと同じような感じです。
Twitter for Androidでの長辺1024pxを超えると勝手にJPEGに変換される仕様は健在なので、それより大きな画像が上げたかったら twiccaとかSobaChaとか使いましょう。
ちなみに、透過PNG以外ならこれがお気に入りです。
PhotoShop Elementsは微妙にかゆいところに手が届かないですよね……
mikutter で "だれそれについて" を開くと "ふぁぼが取得できませんでした (undefined method `[]' for nil:NilClass)" を吐く件のメモ
ただのメモ
$ grep -r count_favorite_by . ./core/plugin/profile/profile.rb: user.count_favorite_by.next{ |favs| ./core/user.rb: def count_favorite_by
user.rb
127 # ユーザのメッセージが今までお気に入りにされた回数を返す 128 def count_favorite_by 129 Thread.new { 130 open("http://favstar.fm/users/#{idname}"){ |io| 131 m = io.read.match(/<div[\s]+class='fs-value'[\s]*>[\s]*([0-9,]+)[\s]*<\/div>[\s]*<div[\s]+class='fs-title'[\s]*>[\s]*Favs[\s]*Received[\s]*<\/div>/) 132 @value[:favouritesby_count] = m[1].gsub(",", "").to_i } } end
なぜfavstarなんぞを叩いている……
profile.rb
305 user.count_favorite_by.next{ |favs| 306 w_faved.text = favs.to_s 307 }.terminate(_("ふぁぼが取得できませんでした")).trap{ 308 w_faved.text = '-' }
とりあえず
profile.rb
305 w_faved.text = '-' 306 # user.count_favorite_by.next{ |favs| 307 # w_faved.text = favs.to_s 308 # }.terminate(_("ふぁぼが取得できませんでした")).trap{ 309 # w_faved.text = '-' }
user.rb
128 # def count_favorite_by 129 # Thread.new { 130 # open("http://favstar.fm/users/#{idname}"){ |io| 131 # m = io.read.match(/<div[\s]+class='fs-value'[\s]*>[\s]*([0-9,]+)[\s]*<\/div>[\s]*<div[\s]+class='fs-title'[\s]*>[\s]*Favs[\s]*Received[\s]*<\/div>/) 132 # @value[:favouritesby_count] = m[1].gsub(",", "").to_i } } end
Youtubeで動画に使用されているコーデック(映像・音声それぞれ)の判別をする方法
概要
ブラウザ上から、現在再生している動画の映像と音声のコーデック(ついでに解像度とかも)を判別する方法です。
動画のフォーマット番号を見るお話です。
[2017/11/08 追記] なんかWikipediaの記述が消えてたので、同等の記述を記事に足しました。
前置き
Youtubeで動画や音声に使用されているコーデックが何なのか気になったことはありませんか?
私はありませんでした。そう。あのOpusが既に使われているということを見聞きするまでは。
コーデックが何なのか確かめるためには、生の動画データにアクセスできないと無理だと思っていませんか?
私は思っていました。そう(ry
手順
例示画像は記念すべきOpusが使われていると教えてもらった動画です。
動画を右クリックします。
詳細統計情報をクリックします。
なんか出てきます。映像部分がWebMでVP9で1080pなのはもうこの時点で書いてありますけど、見なかったことにして先に進みます。
矢印のところの数字を見ます。248/251と書かれていますね。これがフォーマット番号です。
YouTube - Wikipedia の
Comparison of YouTube media encoding options のところを見ます。
[2017/11/08 追記] Wikipediaの記述消えてます。 YouTube内で4Kで検索して一番最初に出てきたのが Zion National Park. Autumn - 4K Nature Documentary Film - YouTube だったので、これの Format Code を書いておきます。4K動画なら、たぶん全フォーマット網羅してるでしょ? ってことで。
format code extension resolution note 139 m4a audio only DASH audio 66k , m4a_dash container, mp4a.40.5@ 48k (22050Hz) 249 webm audio only DASH audio 76k , opus @ 50k, 32.86MiB 250 webm audio only DASH audio 95k , opus @ 70k, 43.32MiB 140 m4a audio only DASH audio 132k , m4a_dash container, mp4a.40.2@128k (44100Hz) 171 webm audio only DASH audio 151k , vorbis@128k, 69.07MiB 251 webm audio only DASH audio 169k , opus @160k, 83.91MiB 160 mp4 256x144 DASH video 113k , avc1.4d400c, 24fps, video only 278 webm 256x144 144p 126k , webm container, vp9, 24fps, video only, 56.18MiB 133 mp4 426x240 DASH video 264k , avc1.4d4015, 24fps, video only 242 webm 426x240 240p 270k , vp9, 24fps, video only, 115.75MiB 243 webm 640x360 360p 521k , vp9, 24fps, video only, 223.46MiB 134 mp4 640x360 DASH video 648k , avc1.4d401e, 24fps, video only 244 webm 854x480 480p 995k , vp9, 24fps, video only, 418.93MiB 135 mp4 854x480 DASH video 1374k , avc1.4d401e, 24fps, video only 247 webm 1280x720 720p 1992k , vp9, 24fps, video only, 865.87MiB 136 mp4 1280x720 DASH video 2539k , avc1.4d401f, 24fps, video only 248 webm 1920x1080 1080p 3410k , vp9, 24fps, video only, 1.49GiB 137 mp4 1920x1080 DASH video 4694k , avc1.640028, 24fps, video only 264 mp4 2560x1440 DASH video 10984k , avc1.640032, 24fps, video only 271 webm 2560x1440 1440p 11569k , vp9, 24fps, video only, 4.90GiB 266 mp4 3840x2160 DASH video 23644k , avc1.640033, 24fps, video only 313 webm 3840x2160 2160p 24086k , vp9, 24fps, video only, 10.62GiB 17 3gp 176x144 small , mp4v.20.3, mp4a.40.2@ 24k 36 3gp 320x180 small , mp4v.20.3, mp4a.40.2 43 webm 640x360 medium , vp8.0, vorbis@128k 18 mp4 640x360 medium , avc1.42001E, mp4a.40.2@ 96k 22 mp4 1280x720 hd720 , avc1.64001F, mp4a.40.2@192k (best)
[2017/11/08 追記ここまで]
248番 が コンテナがWebM、解像度1080p、コーデックVP9、
251番 が コンテナがWebM、コーデックがOpus、ビットレートが160kbps
であると分かります。
(Wikipediaの記事の脚注にもあるように、このビットレートは実際のものとは異なります。)
だいたいの動画は、
映像が133, 134, 135, 136, 242, 243, 244, 247, 248
音声が140, 251
あたりな気がします。
余談
比較的新し目の動画で、720p以上の解像度を再生すると、VP9が使われていることが多く、思っていたよりWebMが普及しているんだなぁ、という感想を抱きました。世の中MP4だと思っていたので。
まぁそんなことよりOpusですよOpus。VP8とVP9に比べて知名度ないでしょ。自分も知りませんでしたもん。しかもなぜかわりと使われているし。世の中MP3とAACしかないと思ってましたよ。
Opusはいいぞ。