- 投稿日:2020-09-12T22:58:26+09:00
macOS Catalina で MacOS X Snow Leopard のインストールUSBメモリを作成し、古いMacを初期化する
古いMacは工場出荷時にインストールされていたのと同じバージョンのOSがないと初期化できません。
手元に元々Snow LeopardがインストールされていたMac miniがありますが、付属していたOSインストールディスクを紛失したため、以下の方法で初期化しました。
なお、Snow Leopard のインストールDVDを別途入手したのですが、Mac miniのDVDドライブがこのDVDを認識してくれなかったため、ブータブルなUSBメモリを作成し、初期化に使用しました。環境
インストールUSBメモリを作成するために使った環境です。
- MacBook Pro(macOS 10.15.6)
- 外付けDVDドライブ
- 16GBのUSBメモリ
- Mac OS X Snow Leopard のインストールDVD
1. Snow Leopard のインストールDVDからディスクイメージを作成する
ディスクユーティリティを使用してディスクイメージを作成しようとすると失敗します。
このバグはEl Captainのときに発生していたようで、Catalinaでも同じバグが発生しています。
そのため、ターミナルでhdiutilを実行し作成します。
ターミナルで次を打つとディスクイメージを作成できます。$ hdiutil convert -format UDTO -o <出力ファイル名> <ドライブ名><出力ファイル名>は ~/cdrom などとすると、cdrom.cdr が作成されます。
<ドライブ名>は、Snow Leopardのディスクが入ったDVDドライブのドライブ名で、/dev/disk3 などとします。
ディスクドライブ名は diskutil list と打って調べます。
-formatのUDTOは、DVD/CDマスターのことです。
hdiutil convert -help と打つと他のフォーマットを調べることができます。
作成されたファイルの拡張子を「.cdr」から「.iso」に変更します。2. .dmg ファイルの生成
次のコマンドを実行して先ほどの cdrom.iso から SnowLeopard.img.dmg を生成します。
hdiutil convert -format UDRW -o ~/SnowLeopard.img ~/cdrom.iso3. USBメモリをアンマウントする
次のコマンドを実行してUSBメモリをアンマウントしておきます。
diskutil unmount <ドライブ名>これをしないとこの後のUSBメモリへの書き込み時に「Resource busy」と表示され実行に失敗します。
<ドライブ名>は先と同様に diskutil list と打ってUSBメモリのドライブ名を調べます。
もし上記でコマンドを実行して次のメッセージが表示されたら、<ドライブ名> was already unmounted or it has a partitioning scheme so use "diskutil unmountDisk" instead次を実行してアンマウントします。
diskutil unmountDisk <ドライブ名>4. ブータブルなUSBメモリを作成する
先ほど「3.」で生成した SnowLeopard.img.dmg をUSBメモリに書き込みます。
sudo dd if=~/SnowLeopard.img.dmg of=<ドライブ名> bs=1m<ドライブ名>はUSBメモリのドライブ名を指定します。
5. MacをUSBメモリから起動し、初期化する。
インストール先のMacにUSBメモリを挿し、Option キーを押しながら電源を投入します。
しばらくして表示される起動ドライブを選択する画面でUSBメモリを選択して起動。
後は画面に従えば初期化できます。
なお、USBメモリで起動後にディスクユーティリティで初期化対象のハードディスクを一旦消去してフォーマットしておかないと初期化できない場合があるかもしれません。参考
https://beiznotes.org/failed-to-make-a-cdrom-disk-image-on-macos-catalina/
https://qiita.com/kikuchy/items/4073c3bad9fe39101a25
https://www.taikun-room.com/2019/12/how-to-make-bootable-usb-installer.html
- 投稿日:2020-09-12T21:19:09+09:00
Macターミナルのコマンドエイリアスおすすめ
記事の想定
ユーザー
- Mac買いたてで何もわからん人
- エイリアスやったことない人
- ターミナルのコマンドおすすめ無いかな〜・・・な人
想定環境
- Mac初期設定?のzsh(特に買ってからターミナル周りの設定いじってないな〜って人は多分これになってるはず)
(私は今の所不自由してないのでこのまま行こうと思ってる。。。)結論
- exa(lsのリッチver.)入れとけ1
$ brew install exa
- ひとまず/Users/(yourDirectory)/.zshrcに以下ぶっこんどけ
#ステータス表示を消す eval "$(anyenv init -)" export PS1="%~ $ " #exa(lsのリッチver.) alias ls='exa' alias ll='exa -ahl --git' #cdしたらls cdls () { \cd "$@" && ls } alias cd="cdls" #Homebrew alias b='brew' alias bi='brew install' alias bui='brew uninstall' alias bu='brew upgrade' alias bl='brew list' alias bs='brew search' alias bc='brew cask' alias bci='brew cask install' alias bcui='brew cask uninstall' alias bcu='brew upgrade --cask' alias bcl='brew list --cask' alias bcs='brew search --cask' #google検索 google() { open /Applications/Google\ Chrome.app/ "http://www.google.com/search?q= $1"; } alias g="google"説明
一応ざっくり用語説明
エイリアス
- '別名'のこと
- 今回やっていることは主にターミナルで「○○って打ち込んだら、これは△△のことだからね!!」ってターミナル君に教え込むことをしてる
zsh
- シェルの一種
/Users/(yourDirectory)/.zshrc
- zshの設定ファイル
今回の設定について解説
ステータス表示の変更
eval "$(anyenv init -)" export PS1="%~ $ "
- いきなりエイリアスじゃない話
- ざっくりいうと、コマンド打つところの最初の'$'より前のステータス周りの文字を消してる
// ↓↓↓設定すると'~'だけになる! ~ $ hogehoge
- 画面狭いMacで作業するときにステータスの表示が長くて邪魔だったので。。。
exa関係
// exa(lsのリッチver.) alias ls='exa' // ←既存の'ls'を置き換えちゃう alias ll='exa -ahl --git' // ←更に詳細情報を調べたいとき用 // cdしたらls cdls () { \cd "$@" && ls // ←'cd'による遷移が成功したら'ls(上で'exa'に変更してる)が実行される } alias cd="cdls"
- ls(カレントディレクトリ直下の一覧表示)をリッチにしてくれる
- ディレクトリとファイルを色分けしてくれるだけでもだいぶ有り難いので即入れる
- 他には権限情報、Gitステータスなんかを表示してくれるようにもできる
homebrew関係
// Homebrew alias b='brew' alias bi='brew install' alias bui='brew uninstall' alias bu='brew upgrade' alias bl='brew list' alias bs='brew search' alias bc='brew cask' alias bci='brew cask install' alias bcui='brew cask uninstall' alias bcu='brew upgrade --cask' alias bcl='brew list --cask' alias bcs='brew search --cask'
- シンプルに、短縮形を登録
ターミナルからGoogle検索
google() { open /Applications/Google\ Chrome.app/ "http://www.google.com/search?q= $1"; } alias g="google"
- 地味に便利系
- "$ g ほげほげ"ってターミナルで打てばchromeが立ち上がって「ほげほげ」で検索されたページが立ち上がる
おわり
編集記録
- 20200912|初版
- 20200913|brew upgrade, brew cask系追加
brewは真っ先に入れるべき。。。homebrewとは何者か。仕組みについて調べてみた ↩
- 投稿日:2020-09-12T19:52:41+09:00
Wake on LANを使って、遠隔からパソコンを起動しよう【macOS】
はじめに
Wake on LAN (WOL)とは、「同じネットワーク内のパソコンに対して、Magic Packet(マジック パケット)というパケットを送り込み、遠隔から電源をつけることができる仕組み」です。同じネットワーク内だったとしても、中継しているルータがMagic Packetをブロックしている場合もあります。
今回は、macOSのパソコンからMagic Packetを送る方法を紹介します。
1. 受信PCのMACアドレスを確認
まず受信PCのMACアドレスを確認します。
MACアドレスは、Media Access Controlの略称で、「ネットワーク機器に割り当てられた住所」のことです。AppleのmacOSとは全く関係なく、WindowsPCにも割り当てられています。
最後に、
ネットワーク > ネットワーク環境 > ハードウェア(MAC)アドレス
をスクロールして探します。
2. 送信PCからMagic Packetを送信
受信PCのMACアドレスがわかったら、送信PCで
ターミナル
というアプリを開き、以下のようなコマンドを実行してみましょう。
特に、エラーなく実行できたら、準備完了です。% mkdir ~/bin % curl https://raw.githubusercontent.com/jpoliv/wakeonlan/master/wakeonlan -o ~/bin/wakeonlan % chmod +x ~/bin/wakeonlan最後に、以下のようなコマンドで
xx:xx:xx:xx:xx:xx
に受信PCのMACアドレスを入れて、実行してみましょう。% ~/bin/wakeonlan xx:xx:xx:xx:xx:xxこれで、受信PCが起動したと思います。
研究室などで、別の部屋のパソコンがスリープに入った時に起動させたいタイミングなどがあり、意外と便利です。参考リンク
- 投稿日:2020-09-12T16:48:07+09:00
「php artisan ui vue --auth」ができなかった時の解決法【メモ】【超初心者】
- 投稿日:2020-09-12T16:29:39+09:00
Mac 環境構築の備忘録
たまにあるよね、クリーンインストールして環境構築し直すはめになること
…ありませんかね?
というわけでMacOSからクリーンインストールして、開発環境諸々再構築するはめになったので次に備えて備忘録として書いてます。目次
1.MacOS再インストール
色々方法はありますが、私はUSBメモリにOSデータを書き込んでブータブルUSBメモリを作成して、そのUSBメモリから起動する形でインストーラを起動し、再インストールしています。
※詳細はこちら
macOS の起動可能なインストーラを作成する方法 - Appleまず肝心のOSのデータをダウンロードします。
macOS Catalina にアップグレードする方法 - Apple
上記リンクの手順4「macOS Catalina をダウンロードする」からAppStoreを開いてCatalinaのインストーラディスクイメージをダウンロードします。Mojave, HighSierraを使用したい場合は下記からダウンロードできます。
macOS Mojave にアップグレードする方法 - Apple
macOS High Sierra にアップグレードする方法 - Apple
Catalinaの場合と同じく手順4からAppStoreを開き、OSインストーラーのディスクイメージをダウンロードできます。ダウンロードが完了したらUSBメモリに書き込みます。ただコピーするだけではブータブルメディアにはならないのでターミナルから作成します。
//Catalina $ sudo /Applications/Install\ macOS\ Catalina.app/Contents/Resources/createinstallmedia --volume /Volumes/MyVolume //Mojave $ sudo /Applications/Install\ macOS\ Mojave.app/Contents/Resources/createinstallmedia --volume /Volumes/MyVolume //High Sierra $ sudo /Applications/Install\ macOS\ High\ Sierra.app/Contents/Resources/createinstallmedia --volume /Volumes/MyVolumeここではUSBメモリの名前を
MyVolume
としています。
もちろん任意に変更しても問題ありませんが、その場合はコマンド後半の--volume /Volumes/MyVolume
を--volume /Volumes/"USBメモリの名前"
としないと当然作成できません。USBメモリへの書き込みが終了したらMacをシャットダウンします。
電源が切れたら目的のUSBメモリ以外の周辺機器は取り外して、optionキー
を押したまま電源ボタンを押してStartup Manager
を起動し、先ほど作成したインストーラー(USBメモリ)から起動します。インストーラーが起動したらディスクユーティイリティを開いて、MacのSSDのパーティションを全て消去し、APFS形式で新しいパーティションを再作成します。
パーティションの再作成が完了したら、ディスクユーティイリティを閉じて、インストールを開始します。
インストール手順自体はインストーラーが指示を出してくれるのでそのまま従ってインストールしていきます。インストールが完了したら自動的に再起動されます。ユーザー情報や iCloudログイン等が
またこのタイミングでTimeMachine
からの復元も可能です。その場合はこれ以降の操作は不要です。※ブータブルメディアを作成せずに、再インストールする方法もあります。
これはAppleが公式サイトにまとめてくれているので詳細はそちらで。2.Homebrewインストール
言わず知れたHombrewをインストールしていきます。
公式ドキュメントに従ってターミナルで以下のコマンドを実行します。もちろんインストール済みなら飛ばしても問題ありません。
$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
brew
コマンドが実行できれればインストール完了です。$ brew -v Homebrew/homebrew-core (git revision 279ca1; last commit 2020-09-10) Homebrew/homebrew-cask (git revision 9c41b; last commit 2020-09-10)3.CLIパッケージインストール
Homebrewもインストールできたので各パッケージをインストールしていきます。
複数のパッケージを同時にインストールできるので1行で実行します。
ひとまず今回はGit
,NodeJS
,Yarn
,PostgreSQL
,pyenv
をインストールします。$ brew upgrade $ brew install git node yarn postgresql pyenv
brew list
で各パッケージが確認できれば成功です。$ brew list autoconf icu4c openssl@1.1 postgresql yarn gettext krb5 pcre2 pyenv git node pkg-config readline
pyenv
を使ったpythonのインストールはここから。4.GUIパッケージインストール
これまでGUIパッケージは手動で各インストーラーでインストールしていたのですが、今回環境構築をやり直している過程で
brew cask
でGUIパッケージもインストールできる事を思い出しました。調べてみたら今回インストールしたGUIパッケージがなんと全て
brew cask
に対応していたことがわかりました。今回はGUIパッケージは全部それぞれのインストーラーからインストールしてしまったのでそのままにしておきますが、次回以降のために
brew
でインストールする手順を記録しておきます。
今回インストールするのは以下のパッケージです。※ブラウザ
MozillaFireFox
GoogleChrome※オンラインストレージ
GoogleBackup&Sync※オフィスソフト
AdobeAcrobatReader
LibreOffice※開発環境
VisualStudioCode
PostMan
VirtualBox※セキュリティソフト
AvastSecuroty※言語環境
Google日本語入力
DeepL※システムユーティリティ
iStat-Menus
TheUnarchiver※システムクリーナー
AppCleaner
CCleaner
OnyXそれではインストールしていきます。
$ brew cask install firefox google-chrome google-backup-and-sync adobe-acrobat-reader libreoffice visual-studio-code psotman virtualbox slack zoom avast-security google-japanese-ime deepl istats-menus the-unarchiver app-cleaner ccleaner onyx spotify vlc
brew list --cask
でパッケージが確認できれば成功です$ brew list --cask5.npmパッケージインストール
グローバルでインストールするnpmパッケージをインストールします。
現時点でインストールしてあるのはtypescript
だけなので、インストールしておきます。$ npm install -g typescript必要に応じて追加していこう。
とは言ってもグローバルでインストールする項目はそんなに多くはならないと思うが。あとはプロジェクト単位でのローカルインストールになるかな?
あとがき
brew
は使ってたけどbrew cask
は使ってなかった。そして今回少し調べたら自分が使ってる有名所のソフトは全部あったので、次回以降の環境再構築の際に試したみたいところ。
これで行けるならいちいちインストーラ起動しなくてもいいし、一括でパッケージ管理もできるからインストール/アップデート/アンインストールの管理の手間も削減できそう。CLIパッケージだけでなく、これまで手動でインストールしていたGUIパッケージも
brew
コマンドで、つまりは今回まとめたようにパッケージのリストを作成しておけば1行のコードをターミナルにコピー・アンド・ペーストするだけでインストールできることになる、これは後々すごく楽になりそう。
brew
でインストールできていないパッケージはあるにはあるが、AppStoreでインストールだからログインしてワンクリックで済むからさして手間にはならない。あとは必要になるとしたらファイルのコピーとOSや各パッケージの設定かな。
そのあたりもコマンドでできるやつは一括でやりたいところ。
コマンドで実行できるならシェルスクリプト書いておけば一括で実行できるので、合間見て記録しておこうかな。参考記事
- 投稿日:2020-09-12T15:04:08+09:00
【Mac】ZoomでiPad画面+受講者コメント+講師映像を配信 (フレームレート改善版)
この記事を読むと緩和されうるリモート講義の課題
- スライドだけのリモート講義は、集中力が続かない。講師が信頼できる人なのか、受講者が感じにくい(講演者・受講者の課題)
- 講演者映像を入れたとしても、リモート講義は「壁」に向かって喋っているような感じがして虚しい(講演者の課題)
- 講演者映像を入れたとしても、リモート講義は、受講者間で、一緒に受講しているという雰囲気が感じられない。例えば、話についていけないのが自分だけなのかどうか感じにくい(受講者の課題)
- 個々のテクニックは調べると分かるとしても、一通りできる一例が知りたい
- これらをMac+iPadベースで解決したい
よくご存じの方に対して
OBS Studio と Comment Screenという素晴らしいツールを組み合わせる紹介をしているだけです。
以前の記事の方法では、フレームレートが極端に落ちることがあり、「ニコニコ風オンライン講義環境を作ろう!」と「OBSを利用してZoom フルHD(1080p、1920×1080)配信を実現する方法」を参考に修正しました。
目標
- Zoomでこういう配信をする方法の一例を紹介
- メインターゲットは、リモート講義をせざるを得なくなった教員
要素
以下の3つの要素で実現できます。
全部ではなく、いくつかの要素だけの導入でもいいと思います。
1と2はアプリだけ。
3は、グリーンバック、さらにはカメラなどがあればクオリティを上げていけるが、まずは無しでスタートするのがよいのでは。
- iPadのスライドをZoomで配信
- Comment Screenでコメントやアイコンを画面に出したものを配信
(WindowsだとComment Screen以外に、パパパコメント http://papapac.com/ もある)
- OBS Studioで講演者映像をスライドに重ねて配信(グリーンバックがなければ、講演者映像とスライドを並べる)
機材
要素1,2に必要なもの
- Mac(ここではMacbook Pro, macOS 10.14.6 Mojave)
- Macの外部ディスプレイ1つ
- iPad or iPhone(ここではiPad Pro 11inch, iOS 13.7)
- Zoom 5.2.1
- AirServer for Mac (本稿執筆時点では教員は1,800円) https://www.airserver.com/Mac
- GoodNotes iPad/iPhoneアプリ (有料) スライドを表示するアプリであればなんでもよい
- Comment Screen 1.0.7 (無料) https://commentscreen.com/
- 教育に対する情熱
要素3に追加で必要なもの
- Macの外部ディスプレイ2つ
- OBS Studio (無料) https://obsproject.com/ja/download
- グリーンバック(あれば講師画像をクロマキー合成で重ねられる)
1. iPadの画面をMacのZoomで配信
前提:MacとiPadは同一の無線LANに接続
- MacでAirServerを起動
- AirServerの解像度指定は,4:3であれば"Projector 1024x768",16:9であれば1080p
- iPadの画面ミラーリングでMacのAirServerを選択
- iPadでGoodNotesを起動すると、スライドだけがMacに表示される
- Zoomの画面共有でAirServerを選択
1.1 他の方法に関する補足
- MacのZoom→画面共有→iPhone/iPad(AirPlay使用)
数分であれば出来るが、数十分やると、途中でiPadの操作が反映されないことがある
上記AirServerを立ち上げた状態でこれをしようとすると、うまくいかないので注意- MacのZoom→画面共有→iPhone/iPad(ケーブル使用)
GoodNotesなどでスライドだけを表示することが出来ない。アプリのツールバーなどが見えてしまう。- iPadでZoom配信
要素2,3を加える拡張性がない2. CommentScreenでコメントやアイコンを画面に出したものを配信
- Comment Screenをインストールする https://commentscreen.com/ のDownload Nowよりダウンロード,インストール
- AirServerをフルスクリーンに
メニューのウィンドウ→「フルスクリーンにする」- Comment Screenを起動
- Zoomの画面共有で、デスクトップを選択
デスクトップでなくAirServerを画面共有すると、Comment Screenは配信されないComment Screen自体は https://commentscreen.com/ 参照
筆者は「分かったとか、ついて行けてないとか、気分をアイコンを送って」とか「1番と思う人はアイコンを1つ送って」などとしています。文字も送ることが出来ますが、アイコンの方が気兼ねなく送ってくれるようです。アイコンは の4種類が使えます。3. OBS Studioで講演者映像をスライドに重ねて配信
- OBS Studio を https://obsproject.com/ja/download よりダウンロード、インストール
- OBS (macOS) Virtual Camera を https://github.com/johnboiles/obs-mac-virtualcam よりダウンロード、インストール
- AirServer, Comment Screenを起動
OBS Studio(以下OBS)の設定
- 複数のディスプレイのうち1つを共有用とし、AirServerのウインドウを適当な場所に配置
PowerPointなどでも、全画面でよければ、その画面を共有すればOK
このディスプレイの解像度は,1280x720くらいに下げておいた方が,Comment Screenのアイコンが大きく見えてよい.- ソース欄を右クリック→追加→画面キャプチャ→新規作成で、共有用のディスプレイを指定
- デスクトップのメニューバーを消す(ただし,これをするとCommentScreenのコメントの上が欠ける副作用あり)
ソース欄の、先ほど作った画面キャプチャを右クリックし、プロパティ→上をクロップ 44.00 あたりの数字にすると、Macのメニューバーが消える.- 講師映像追加・鏡像に
ソース欄を右クリック→追加→映像キャプチャデバイス→新規作成で、FaceTime HD Camera (Macbookの内蔵カメラ)を選択。適当な場所に配置。グリーンバックがなければ、横に並べる。
ディスプレイに映る映像が鏡像になるようにした方がスライドを指しやすい(右クリック→変換→水平反転)- グリーンバックがある場合、講師映像の背景を消す
ソース欄の、先ほど作った映像キャプチャデバイスを右クリックし、フィルタ→エフェクトフィルタ→「+」ボタン→クロマキー- 設定→映像→出力(スケーリング)解像度を1280x720に
- ツール→Start Virtual Camera
Zoomで、「画面の共有」→詳細→第2カメラのコンテンツ→「カメラの切り替え」でOBSの画面に
上記のようにVirtual Cameraを使わないとフレームレートが極端に落ちることがあります。詳しくは以下参照。
OBS Studioでのクロマキー合成についての参考URL
- OBS Studioで顔出しゲーム配信の背景を透過する方法
https://www.sassanblog.com/entry/greenback-13.1 映像クオリティアップに関する補足
例の画像では、以下の機材も使って講演者映像の解像度を上げていますが、まずは無しでいいと思います。
- HDMIクリーン出力できるカメラ。筆者はZ6 + NIKKOR Z 24-70mm f/4 S (私物で手元にあっただけ)
- キャプチャボード。UVC対応が望ましい。筆者はElgato Game Capture HD60 S+
やり方の参考URL
- Zoomミーティングを高画質に!手持ちの一眼レフをWebカメラにする方法
https://share-photography.com/zoom-web-camera-use/- テレビ会議を「ミラーレス一眼」で品質アップ!Webカメラとして使ってみたらどうなのか?
https://internet.watch.impress.co.jp/docs/review/1247301.html他のプラットフォームの場合
Windows
OBS Studio, Comment Screen, AirServerすべてWindows版があります。
基本的に同じ流れでできるはずです。
ただ、私自身使ったことはないので、特にAirServerなど安定性は分かりません。Zoom以外のWeb会議ツール
本記事はZoomに特化しているため、以前の記事の方が、他のツールでも応用が利きやすいかもしれません。
むすび
こういう工夫をしてみたところ、Comment Screenを介して受講者間でお互いの理解の雰囲気が分かるなど、受講者側にも当初想像以上のメリットがあることが分かりました。
また、私自身、新型コロナ対策でリモート講義・リモート学会になった当初は、「こんなのでは講義や学会発表をする気が起きない」と感じていましたが、学生のポジティブな反応を得て、だんだんやる気が湧いてきました。
- 投稿日:2020-09-12T14:26:33+09:00
MacのVisual Studio Code間で設定を同期する方法
はじめに
仕事でもプライベートでもVisual Studio Codeを使っているのですが、できれば設定周りを同期したいと思っていました。
ふと、Visual Studio Codeの設定をみたところ、同期するための設定項目がありましたので、ここで紹介します。
同期の際には、GithubアカウントかMicrosoftのアカウントが必要になるので、事前に準備をしておくと、設定がスムーズかと思います。設定を行った環境
Mac Catalina 10.15.6
Visual Studio Code August 2020 (version 1.49)設定手順
デバイス間で同期するデータを選択して、「サインインしてオンにする」ボタンをクリックします。
同期するデータでは「設定、キーボードショートカット、ユーザースニペット、拡張機能、UIの状態」を選択することができます。
同期するアカウントを選択します。MicrosoftアカウントかGithubアカウントを選ぶことができます。
ここでは、Githubアカウントを選択しました。
設定を行った後は
左下のアカウントボタンをクリックすると、「設定の同期がオン」と表示され、設定の同期のオン・オフが確認できます。また「設定の同期がオン」をクリックすると、以下のメニューが表示されますので、必要に応じて、設定の同期を操作してみてください。
おわりに
会社と自宅でVisual Studio Codeを使用している方は参考に同期設定をしてみてみると良いかと思います。
- 投稿日:2020-09-12T14:26:33+09:00
MacのVisual Studio Codeでデバイス間の同期設定を試してみた
はじめに
仕事でもプライベートでもVisual Studio Codeを使っているのですが、できれば設定周りを同期したいと思っていました。
ふと、Visual Studio Codeの設定をみたところ、同期するための設定項目がありましたので、ここで紹介します。
同期の際には、GithubアカウントかMicrosoftのアカウントが必要になるので、事前に準備をしておくと、設定がスムーズかと思います。設定を行った環境
Mac Catalina 10.15.6
Visual Studio Code August 2020 (version 1.49)設定手順
デバイス間で同期するデータを選択して、「サインインしてオンにする」ボタンをクリックします。
同期するデータでは「設定、キーボードショートカット、ユーザースニペット、拡張機能、UIの状態」を選択することができます。
同期するアカウントを選択します。MicrosoftアカウントかGithubアカウントを選ぶことができます。
ここでは、Githubアカウントを選択しました。
設定を行った後は
左下のアカウントボタンをクリックすると、「設定の同期がオン」と表示され、設定の同期のオン・オフが確認できます。また「設定の同期がオン」をクリックすると、以下のメニューが表示されますので、必要に応じて、設定の同期を操作してみてください。
おわりに
会社と自宅でVisual Studio Codeを使用している方は参考に同期設定をしてみてみると良いかと思います。
- 投稿日:2020-09-12T12:04:58+09:00
【Android】VideoViewやExoPlayerを使って動画がうまく再生されない時は、動画形式を確認してみよう
背景
Androidで
VideoView
やExoPlayer
を使って動画再生機能を作ったはいいものの、なぜか動画がうまく再生されない。。
あのバージョンや端末だと問題なく再生できるのに、なぜかこのバージョンや端末だと再生がうまくいかない。
何故か黒みが出たり、表示が崩れたり、再生に失敗して何も表示されない。
そんなとき、ログを見て実装が怪しくないか疑うのもいいですが、もう一つ別のアプローチを紹介したいと思います。その動画、Androidプラットフォームでサポートされてる?
Androidでは全ての動画形式がサポートされているわけではありません。
例えばmovファイルなど、再生できない動画も存在します。
公式サイトでは以下のようなガイドラインが用意されています。サポートされているメディア形式 | Android デベロッパー | Android Developers
ガイドラインを確認して、そもそもその動画形式がちゃんとサポートされているのか確認するのも大事です。
そうしないといつまでも原因がわからず詰んでしまうからです。
(遭遇した感じ、現象が発生したりしなかったりなど、かなりトリッキーでした。。)動画形式の調べ方
動画形式を調べる方法の一つとして、FFmpegを利用するというのがあります。
(他にはMediainfoを利用するという手もあります)
導入方法はHomebrewで以下コマンドを叩くだけです。brew install ffmpeg動画形式を調べるコマンドは以下になります。
ffmpeg -i [入力ファイル名]例えば、以下の動画をダウンロードして確認してみます。
https://bestvpn.org/html5demos/assets/dizzy.mp4~ ffmpeg -i /Users/Hitoshi/Downloads/dizzy.mp4 ffmpeg version 4.3.1 Copyright (c) 2000-2020 the FFmpeg developers built with Apple clang version 11.0.3 (clang-1103.0.32.62) configuration: --prefix=/usr/local/Cellar/ffmpeg/4.3.1 --enable-shared --enable-pthreads --enable-version3 --enable-avresample --cc=clang --host-cflags= --host-ldflags= --enable-ffplay --enable-gnutls --enable-gpl --enable-libaom --enable-libbluray --enable-libdav1d --enable-libmp3lame --enable-libopus --enable-librav1e --enable-librubberband --enable-libsnappy --enable-libsrt --enable-libtesseract --enable-libtheora --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libxvid --enable-lzma --enable-libfontconfig --enable-libfreetype --enable-frei0r --enable-libass --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-librtmp --enable-libspeex --enable-libsoxr --enable-videotoolbox --disable-libjack --disable-indev=jack libavutil 56. 51.100 / 56. 51.100 libavcodec 58. 91.100 / 58. 91.100 libavformat 58. 45.100 / 58. 45.100 libavdevice 58. 10.100 / 58. 10.100 libavfilter 7. 85.100 / 7. 85.100 libavresample 4. 0. 0 / 4. 0. 0 libswscale 5. 7.100 / 5. 7.100 libswresample 3. 7.100 / 3. 7.100 libpostproc 55. 7.100 / 55. 7.100 Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/Users/Hitoshi/Downloads/dizzy.mp4': Metadata: major_brand : mp42 minor_version : 0 compatible_brands: isomavc1mp42 creation_time : 2009-10-25T14:18:33.000000Z Duration: 00:00:25.00, start: 0.000000, bitrate: 510 kb/s Stream #0:0(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 93 kb/s (default) Metadata: creation_time : 2009-10-25T14:18:33.000000Z handler_name : (C) 2007 Google Inc. v08.13.2007. Stream #0:1(und): Video: h264 (Constrained Baseline) (avc1 / 0x31637661), yuv420p, 480x360 [SAR 1:1 DAR 4:3], 413 kb/s, 30 fps, 30 tbr, 30k tbn, 60 tbc (default) Metadata: creation_time : 2009-10-25T14:18:33.000000Z handler_name : (C) 2007 Google Inc. v08.13.2007. At least one output file must be specifiedざっくり中を紐解いていくと、まず音声が、
Stream #0:0(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 93 kb/s (default)となっていて、形式が「AAC-LC」っぽいのでAndroidでサポートしている形式だな、というのが分かります。
また、動画の方も、Stream #0:1(und): Video: h264 (Constrained Baseline) (avc1 / 0x31637661), yuv420p, 480x360 [SAR 1:1 DAR 4:3], 413 kb/s, 30 fps, 30 tbr, 30k tbn, 60 tbc (default)となっていて、形式が「H.264 AVC Baseline Profile(BP)」っぽいのでこれもサポートしている形式だなというのが分かります。
他にも解像度やフレームレートなどもわかるので、これらの情報を照らし合わせていきながらサポートされているかどうか判断します。
少々泥臭くはなるかもしれませんが、動画形式がサポートされていたかどうかというアプローチで問題を切り分けることができます。
サポートされていなければ実装は問題なさそう、サポートされていれば実装に問題ありそう、といった具合ですね。まとめ
Androidで動画がうまく再生されないとき、場合によっては動画形式がサポートされていない可能性もありますよ、という話と、動画形式の調べ方についてFFmpegを使ったやり方を簡単に紹介しました。
参考URL
- 投稿日:2020-09-12T12:04:58+09:00
Androidで動画がうまく再生されない時は、動画形式を確認してみよう
背景
Androidで
VideoView
やExoPlayer
を使って動画再生機能を作ったはいいものの、なぜか動画がうまく再生されない。。
あのバージョンや端末だと問題なく再生できるのに、なぜかこのバージョンや端末だと再生がうまくいかない。
何故か黒みが出たり、表示が崩れたり、再生に失敗して何も表示されない。
そんなとき、ログを見て実装が怪しくないか疑うのもいいですが、もう一つ別のアプローチを紹介したいと思います。その動画、Androidプラットフォームでサポートされてる?
Androidでは全ての動画形式がサポートされているわけではありません。
例えばmovファイルなど、再生できない動画も存在します。
公式サイトでは以下のようなガイドラインが用意されています。サポートされているメディア形式 | Android デベロッパー | Android Developers
ガイドラインを確認して、そもそもその動画形式がちゃんとサポートされているのか確認するのも大事です。
そうしないといつまでも原因がわからず詰んでしまうからです。
(遭遇した感じ、現象が発生したりしなかったりなど、かなりトリッキーでした。。)動画形式の調べ方
動画形式を調べる方法の一つとして、FFmpegを利用するというのがあります。
(他にはMediainfoを利用するという手もあります)
導入方法はHomebrewで以下コマンドを叩くだけです。brew install ffmpeg動画形式を調べるコマンドは以下になります。
ffmpeg -i [入力ファイル名]例えば、以下の動画をダウンロードして確認してみます。
https://bestvpn.org/html5demos/assets/dizzy.mp4~ ffmpeg -i /Users/Hitoshi/Downloads/dizzy.mp4 ffmpeg version 4.3.1 Copyright (c) 2000-2020 the FFmpeg developers built with Apple clang version 11.0.3 (clang-1103.0.32.62) configuration: --prefix=/usr/local/Cellar/ffmpeg/4.3.1 --enable-shared --enable-pthreads --enable-version3 --enable-avresample --cc=clang --host-cflags= --host-ldflags= --enable-ffplay --enable-gnutls --enable-gpl --enable-libaom --enable-libbluray --enable-libdav1d --enable-libmp3lame --enable-libopus --enable-librav1e --enable-librubberband --enable-libsnappy --enable-libsrt --enable-libtesseract --enable-libtheora --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libxvid --enable-lzma --enable-libfontconfig --enable-libfreetype --enable-frei0r --enable-libass --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-librtmp --enable-libspeex --enable-libsoxr --enable-videotoolbox --disable-libjack --disable-indev=jack libavutil 56. 51.100 / 56. 51.100 libavcodec 58. 91.100 / 58. 91.100 libavformat 58. 45.100 / 58. 45.100 libavdevice 58. 10.100 / 58. 10.100 libavfilter 7. 85.100 / 7. 85.100 libavresample 4. 0. 0 / 4. 0. 0 libswscale 5. 7.100 / 5. 7.100 libswresample 3. 7.100 / 3. 7.100 libpostproc 55. 7.100 / 55. 7.100 Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/Users/Hitoshi/Downloads/dizzy.mp4': Metadata: major_brand : mp42 minor_version : 0 compatible_brands: isomavc1mp42 creation_time : 2009-10-25T14:18:33.000000Z Duration: 00:00:25.00, start: 0.000000, bitrate: 510 kb/s Stream #0:0(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 93 kb/s (default) Metadata: creation_time : 2009-10-25T14:18:33.000000Z handler_name : (C) 2007 Google Inc. v08.13.2007. Stream #0:1(und): Video: h264 (Constrained Baseline) (avc1 / 0x31637661), yuv420p, 480x360 [SAR 1:1 DAR 4:3], 413 kb/s, 30 fps, 30 tbr, 30k tbn, 60 tbc (default) Metadata: creation_time : 2009-10-25T14:18:33.000000Z handler_name : (C) 2007 Google Inc. v08.13.2007. At least one output file must be specifiedざっくり中を紐解いていくと、まず音声が、
Stream #0:0(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 93 kb/s (default)となっていて、形式が「AAC-LC」っぽいのでAndroidでサポートしている形式だな、というのが分かります。
また、動画の方も、Stream #0:1(und): Video: h264 (Constrained Baseline) (avc1 / 0x31637661), yuv420p, 480x360 [SAR 1:1 DAR 4:3], 413 kb/s, 30 fps, 30 tbr, 30k tbn, 60 tbc (default)となっていて、形式が「H.264 AVC Baseline Profile(BP)」っぽいのでこれもサポートしている形式だなというのが分かります。
他にも解像度やフレームレートなどもわかるので、これらの情報を照らし合わせていきながらサポートされているかどうか判断します。
少々泥臭くはなるかもしれませんが、動画形式がサポートされていたかどうかというアプローチで問題を切り分けることができます。
サポートされていなければ実装は問題なさそう、サポートされていれば実装に問題ありそう、といった具合ですね。まとめ
Androidで動画がうまく再生されないとき、場合によっては動画形式がサポートされていない可能性もありますよ、という話と、動画形式の調べ方についてFFmpegを使ったやり方を簡単に紹介しました。
参考URL