2020年12月19日土曜日

SceneDelegateの削除

問題:XCode12以上でSceneDelegateを使わずに開発する

環境:Mac Book Pro mid 2019, Catalina, XCode12, Objective-C

解決:

1. SceneDelegate ファイルを削除

2. info.plist内のApplication Scene Manifestを削除

3. AppDelefate.m内のSceneDelegate関連のデリゲートを削除

4. AppDelegate.hへ以下を追加

@property UIWindow *window;


以上

参考:https://qiita.com/u5_03/items/ff005e7cab7ff509f140



2020年9月9日水曜日

macOSのダウンロードしたアプリケーションの実行許可を一時的に全て許可にする

macOSのダウンロードしたアプリケーションの実行許可を一時的に全て許可にする

許可:
sudo spctl --master-disable

無効化:
sudo spctl --master-enable


参考:
https://pc-karuma.net/macos-sierra-allow-apps-from-anywhere/
https://www.manpagez.com/man/8/spctl/

2020年9月1日火曜日

さくら共用サーバでmysqlをcronで定期バックアップをする

概要
さくら共用サーバでmysqlデータベースの自動バックアップを設定する際のメモ

環境
さくらレンタルサーバースタンダード
MySQL 5.7

解決
シェルスクリプトとオプションファイルを用意してアップロードし、cronを設定する。

以下、

シェルスクリプトファイル:db_backup.sh
オプションファイル:db_backup.conf
ファイル設置場所:/home/username/db_backup/
バックアップファイル保存場所:/home/username/db_backup/db_backups

として手順をまとめる。(赤字は実際のものと読み替えること)


1.シェルスクリプトファイル(db_backup.sh)の作成

以下を記述(username, db_nameは実際のものを使うこと)
---------------------------------------------
#!/bin/sh

# max backup days.
period=30

# backup directory.
dirpath='/home/username/db_backup/db_backups'

# make filename for new backup.
prefix="mysql_"
filename="${prefix}`date +%Y%m%d`.sql.gz"

# mysqldump using file options.
/usr/local/bin/mysqldump -defaults-file=/home/username/db_backup/db_backup.conf db_name | gzip > $dirpath/$filename

# change permission of the new file.
chmod 0600 $dirpath/$filename

# delete old file
oldfile="${prefix}`date -v-$(($period + 1))d +%Y%m%d`.sql.gz"
rm -f $dirpath/$oldfile
---------------------------------------------


2.オプションファイル(db_backup.conf)の作成

以下を記述し保存する。
---------------------------------------------
[mysqldump]
user=db_user_name
password=db_password
host=db_host
---------------------------------------------


3.上記ファイルをFTP等でアップロード
ディレクトリ :/home/username/db_backup/を作成しへアップロードする。
(FTPでアクセスした時は/home/username/はルートディレクトリ になる)
また、ディレクトリ にバックアップデータ保存用ディレクトリ を作成する。
ファイル構成とアクセス権は以下

/home/username/db_backup/db_backup.sh (600)
/home/username/db_backup/db_backup.conf (400)
/home/username/db_backup/db_backup/db_backups/ (600)


4. ターミナルからsshでアクセスし、スクリプトの動作を確認する

ssh username@ username.sakura.ne.jp
cd /home/username/db_backup
./db_backup.sh

上記で/home/username/db_backup/db_backup/db_backups/にファイルが作成されていればOK。


5.さくらのCRON設定で/home/username/db_backup/db_backup.shを実行するように設定する。


以上。

ネット上にある情報の多くはシェルスクリプトにデータベース情報を記述しているものが多いが、データベース情報はオプションファイルとして分けることが推奨されているようなので、ここではオプションファイルにデータベースのホスト名、ユーザ名、パスワードを設置した。さくらのCRONも現在この方法でないと動作しないように思われる。


参考:
mysqldumpのコマンド
https://dev.mysql.com/doc/refman/5.6/ja/mysqldump.html#option_mysqldump_defaults-file

mysqldumpのオプションファイル記述方法
https://dev.mysql.com/doc/refman/5.6/ja/mysql-config-editor.html








2020年6月30日火曜日

XCode11でSandboxを無効にする

【問題】
XCode11でデスクトップなどへダイアログなしでアクセスする方法

【確認環境】
macOS10.15, Mac Book Pro mid 2015, XCode11

【解決】
Signing & CapabilitiesタブのApp Sandboxを削除する

参考:https://stackoverflow.com/questions/7018354/remove-sandboxing

2020年4月9日木曜日

Code sign error : bundle format unrecognized, invalid, or unsuitable / Code sign error : resource fork, Finder information, or similar detritus not allowed

【確認環境】
macOS10.14.6, XCode11.3.1

【問題】
ビルド時に
「Code sign error : bundle format unrecognized, invalid, or unsuitable」
「Code sign error : resource fork, Finder information, or similar detritus not allowed」
エラーが発生する

【解決】
以下を試してみる

1.クリーンビルド
メニューバー > Product > Clean Build Folder (Command + Shift + K)
※XCode11では.appがクリーンされない?この場合手動で削除

2.DerivedDataフォルダ内を削除
メニューバー  > Preferences > Locationsで指定しているDerivedDataフォルダの中身を削除

3.作業用フォルダをxattrコマンドでクリア
ターミナルで、
xattr -cr "作業用フォルダのパス"
を実行し、xattrをクリアにする


4.リソース(画像ファイル)などのリソースフォークのクリア(2020.05.18 追記)

4−1.プロジェクトのルートディレクトリで以下のコマンドを実行しresources.txtを作成
ls -alR@ . > resources.txt

4-2.resources.txt内にあるファイル情報一覧から「com.apple.FinderInfo」が含まれるファイルを探す。

4-3.そのリソースファイルを含むフォルダをxattrコマンドでクリア
xattr -cr "リソースを含むフォルダのパス"

4−4.クリーン&ビルドする


プロジェクトの拡張属性だけでなく、リソースファイルに含まれる拡張属性も正しくないとCode sign errorが出るので、リソースの拡張属性がある場合はそちらも削除する必要がある。

参考:
https://stackoverflow.com/questions/39652867/code-sign-error-in-macos-high-sierra-xcode-resource-fork-finder-information


2019年2月1日金曜日

[NSJSONSerialization dataWithJSONObject:options:error]で文字列化したJSONデータが、PHP7のjson_decode()で失敗する

環境:
クライアント:macOS10.13.6, XCode10.1
サーバー:FreeBSD, PHP7.3

問題:
[NSJSONSerialization dataWithJSONObject:options:error]で文字列化したJSONデータをPHP7で受け取り、json_decode()すると失敗する。

原因:
[NSJSONSerialization dataWithJSONObject:options:error]ではシングルクォーテーションなどもバックスラッシュが加えられるが、PHP7のjson_decode()だと正しいJSONデータとして認識されない。

解決:
受け取ったJSON文字列にstripslashes();をかけ、その後json_decode()を利用する。
以下、例。

if (isset($_POST["received_json"]) {
    $jsonString = $_POST["received_json"];
    $jsonString = stripslashes($jsonString);
    $jsonObject = json_decode($jsonString);
}


macOSアプリでバンドルリソースにある書体を反映させる

環境:
macOS10.13.6, XCode10.1

問題:
macOSアプリで、書体データをバンドルしカスタムフォントとして利用する(アプリのみで利用し、Font Bookなどで書体インストールはせずに使う)

解決(以下、書体名:Test, 書体ファイル:test.otfを反映させる例):
1.Build PhaseのCopy Bundle Resourcesから、test.otfを追加
2.info.plistにFonts provided by applicationを追加し、フォント名"Test"を追加
3.info.plistにApplication fonts resource pathを追加し、フォントファイル名"test.otf"を追加
4.NSFontのfontWithNameで書体名を指定して使用する

※Font Bookで書体がmacOSにインストールされている場合は、2までの設定で動作する。
※Font Bookで書体がmacOSにインストールされていない場合は、3の設定が必要
※Font Bookで書体がmacOSにインストールされていない場合は、IB上では反映できない

参考:
https://stackoverflow.com/questions/27680893/how-to-use-custom-fonts-in-a-mac-application

2019年1月25日金曜日

Adobe AIRでApp Store申請時にMissing Asset Catalogで却下される問題

環境:
macOS10.13.6, Adobe Animate CC 2018/2019, Adobe AID SDK 32.0

問題:
AIR for iOSでApp Store書き出し後、Application Loaderでアップすると、
以下のようにMissing Asset Catalogで却下される

Missing Asset Catalog - Your app is missing the asset catalog file in 'xxxx.app'. For more information see http://help.apple.com/xcode/mac/current/#/dev10510b1f7


原因:
Application LoaderがiOS SDK 11以降(AIR SDKは29以降対応)でビルドされたものしかアップロードできなくなり、アセットの組み込み方法に変化があったため。
(2019.3月以降はiOS SDK 12以上しかアップロードできないと予告あり)
(追記2019.04.04:AID SDK 32.0.109以上でアップロードを確認)

解決:
XCodeでiOS Single Appを作成し、プロジェクトビルド後に含まれるAssets.carをコピーする

以下、手順

1. XCodeで適当なiOSプロジェクトを作成
2. Assets.xcassetsから以下の画像を設定する
- 1024
- 60@2x
- 60@3x
- 76
- 76@2x
- 83.5@2x

3. ビルドする
4. Productsのxxxx.appを右クリックでコンテンツ表示する
5. Assets.carファイルをコピー
6. .flaファイルと同じ場所へペースト、読み込みを行いパブリッシュする

参考:
https://helpx.adobe.com/flash-player/release-note/fp_28_air_28_release_notes.html
https://forums.adobe.com/thread/2483230

2019年1月22日火曜日

Mac 文字変換時の書体を変える

問題:文字を変換する際に使用される書体の種類を変更する。

解決:環境設定>キーボード>入力ソース>候補表示 の書体を変更する

https://wayohoo.com/mac/beginners/how-to-change-the-font-of-conversion-candidates-of-os-x-el-capitan-japanese-input.html

2018年9月28日金曜日

Adobe Animate (Flash)でiOS書き出し時に画面全体にステージが広がらない問題

問題:
Adobe AnimateでiOS書き出しを行った際に、ステージサイズがiPhoneの画面サイズいっぱいに広がらず、レターボックス表示(黒帯あり)になる

環境:
MacBookPro mid 2015, macOS High Sierra 10.13.6, Adobe Animate CC 2018,
iPhone7, iOS11

原因:
各iPhone, iPad, iPodTouch用の起動時画像(Splash Image)が用意されていないと、各デバイスの画面解像度が反映されないため。

解決:
1.各デバイスサイズ対応のスプラッシュ画像を用意し、AnimateのiOS設定にある「含めるファイル」からスプラッシュ画像を設定しておく。スプラッシュ画像それぞれ決まったサイズとファイル名である必要がある。(ファイル名は下方参考)

2.Animate内のアクションスクリプトで
stage.scaleMode = StageScaleMode.EXACT_FIT;
を設定する。

以上


※Launch Imageのファイル名参考:
https://forums.adobe.com/thread/2158880
https://stackoverflow.com/questions/26029440/ios8-icons-sizes-and-names-for-icons-and-launch-image

iPhone 1g-3Gs 320x480 Default.png
iPhone 4, 4s 640x960 Default@2x.png
iPhone 5, 5c, 5s 640x1136 Default-568h@2x.png
iPhone 6s - 8 750x1334 Default-667h@2x.png
iPhone 6s Plus - 8 Plus 1242x2208 Default-736h@3x.png
iPhone X 1125px × 2436px Default-1125h.png
iPhone X Landscape 2436px × 1125px Default-Landscape-X.png
iPad, iPad 2, Mini 768x1024 Default-Portrait.png
iPad Landscape 1024x768 Default-Landscape.png
iPad Retina 1536x2048 Default-Portrait@2x.png
12.9" iPad Pro 2048x1536 Default-Landscape@2x.png

参考:
https://forums.adobe.com/thread/2158880


2018年9月15日土曜日

ENTTEC DMX USB Proが仮想シリアルポートとして認識しない(Arduinoが認識しない場合にも有効かもしれない)

ENTTEC DMX USB Proが仮想シリアルポートとして認識しない
(Arduinoが認識しない場合にも有効かもしれない)

環境
Mac Book Pro 15 (mid 2015),  macOS10.13.6 High Sierra

問題
ENTTEC DMX USB Proが仮想シリアルポートとして認識しない

原因
macにデフォルトで入っているFTDIドライバあるいはusbserialドライバなどが競合している

解決
環境によって多少異なるが、以下を試す。

1.FTDI純正のVCP(Virual Com Port)ドライバであるFTDIUSBSerialDriverをインストールする
以下よりダウンロードしインストールする
https://www.ftdichip.com/Drivers/VCP.htm

インストールが完了すると、
Macintosh HD/Library/Extensions/FTDIUSBSerialDriver.kext
が設置される。

この後再起動し、デバイスが認識するか確認する。
(認識しない場合は2へ)

2. AppleのデフォルトのAppleUSBFTDIDriver.kextを無効にする
Macintosh HD/Library/Extensions/AppleUSBFTDIDriver.kext
がある場合、この拡張子を変更して無効化する
ex) AppleUSBFTDIDriver.kext -> AppleUSBFTDIDriver.disabled

この後再起動し、認識するか確認する。
(拡張子が変更できない場合はSIPの解除が必要かもしれない。SIP解除は下方に記載)
(認識しない場合は3へ)

3. CH34Xのusbserial.kextを無効にする
Macintosh HD/Library/Extensions/usbserial.kext
がある場合、この拡張子を変更して無効化する
ex) usbserial.kext -> usbserial.disabled

この後再起動し、認識するか確認する。

これでも認識しない場合は、その他、Macintosh HD/Library/Extensions/にある競合しそうなものを無効化してみる(自己責任で)。

※競合ドライバがあるExtensionsフォルダの位置はOSバージョンによって違うっぽい。
macOS10.9, 10.10はMacintosh HD/System/Library/Extensions/IOUSBFamily/Contents/Plugins
macOS10.11はMacintosh HD/System/Library/Extensions/
macOS10.12, 10.13はMacintosh HD/Library/Extensions/
である可能性がある。


※2,3で拡張子の変更ができない場合
SIP(System Integrity Protecton)を無効化する必要がある。

1.リカバリモードで再起動する
再起動し、アップルマークが消えるまでCommand + Rを押し続ける

2.メニューバー->ターミナルを起動しSIPを無効化する
csrutil disable
(元に戻す場合は、csrutil enable)

3.再起動する


※MacがDMXUSBProの接続をそもそも認識していない場合があるかもしれない
アップルマーク->このMacについて->USB->
で、「DMX USB Pro」が表示されていれば認識できている。

表示されていない場合は、USBケーブルが怪しいので替えてみる。
(5m USBケーブルを使用していた場合、MacBookPro mid2015では認識したが、MacBookPro mid2009では認識できなかった。)


※20190605追記(重要)
PC起動後にDMXUSBProを接続しても認識しない可能性がある
PC起動前にDMXUSBProを接続しておき、PCを起動すると認識する
AppleUSBFTDIDriver.kextでも認識する場合があるが、シリアル通信が正しくできない
FTDIUSBSerialDriver.kextを利用した方が良さそう。


参考:
FTDI本家のPDF7章に記載あり。10.9と10.10は/System/Library、10.11以降は/Library?
https://www.ftdichip.com/Support/Documents/AppNotes/AN_134_FTDI_Drivers_Installation_Guide_for_MAC_OSX.pdf
https://forum.arduino.cc/index.php?topic=427825.15
https://qiita.com/stastaka/items/85763f0431c3e4d5e86b

2018年9月5日水曜日

macos「確認済みの開発元からのアプリケーション」の作成方法

問題:開発したmacosアプリをApp Storeを使用せずに配布した場合、「開発元が未確認のため開けません」となる

原因:10.7.5以降では、macosに実装されたGatekeeper(セキュリティとプライバシー→ダウンロードしたアプリケーションの実行許可)によってアプリがチェックされ、アプリに開発者署名が含まれていないため。

解決:「確認済みの開発元からのアプリケーション」を作成する。以下、手順の抜粋

・アプリの書き出し
1. Apple Developer Portalで開発したmacosアプリのdistribusion用プロビジョニングプロファイルを用意

2.XCodeのプロビジョニングプロファイルを読み込み、Archiveでパッケージ化


・アプリのチェック
1.システム環境設定→セキュリティとプライバシ→ダウンロードしたアプリケーションの実行許可:「App Storeと確認済みの開発元からのアプリケーションを許可」にする

2.ターミナル上で以下のコマンドを実行(XXX.appは調べたいアプリのパス)

$ spctl -a -v XXX.app

署名がうまくいっている場合:
./XXX.app: accepted
source=Developer ID

署名がうまくいっていない場合:
./XXX.app: rejected

となる。


追記(2018.12.14)
Certificatesなどの登録が済んでいるという前提で、

XCode → General → Signing (Debug) で、

Provisioning Profile: None
Team: 該当するチーム
Signing Certificate: Mac Developer

でもいける場合がある。



参考:Mac App Storeを通さずにアプリケーションを配布する手順
https://developer.apple.com/jp/documentation/IDEs/Conceptual/AppDistributionGuide/DistributingApplicationsOutside/DistributingApplicationsOutside.html

2018年8月26日日曜日

基板用コネクタ メモ

基板用/配線用コネクタメモ
基板用はMolex製5051が一番よいかも。
配線用はSM

基板用コネクタ
日圧製XH
http://eleshop.jp/shop/g/g61B141/
http://eleshop.jp/shop/g/g61A146/
http://eleshop.jp/shop/g/g65E314/
http://akizukidenshi.com/catalog/g/gC-12842/
・専用コンタクトピン、ハウジングあり
・ハウジングには角型ピンヘッダをさせる
・L型ベースあり
・コンタクトピンの圧着失敗しやすい
・コネクタ抜き差し共に固すぎた

・専用コンタクトピンはあるが、ハウジングがない
・普通の角型ピンヘッダにもさせる
・L型ベースなし(普通のピンヘッダにはあり)
・差し込み方向がない
・抜き差ししやすい

Molex製5051
http://eleshop.jp/shop/g/gGAR123/
http://eleshop.jp/shop/g/gGBI123/
http://eleshop.jp/shop/g/gGAR12G/
・専用コンタクトピン、ハウジングあり
・普通の角型ピンヘッダにも差せる
・L型ベースあり
・差し込み方向がある
・抜き差ししやすい

配線用
日圧製SM(2019.09.08追記)
https://eleshop.jp/shop/g/g685146/
https://eleshop.jp/shop/g/g68514L/
https://eleshop.jp/shop/g/g685251/
https://eleshop.jp/shop/g/g65E312/
・専用コンタクトピン、ハウジングあり
・ハウジングには角型ピンヘッダをさせる
・L型ベースなし
・ストッパがある
・差し込み方向がある
・抜き差ししやすい


秋月にはMolexがない?

2018年5月27日日曜日

MaxのI/Oベクターサイズとシグナルベクターサイズ

MaxのI/Oベクターサイズとシグナルベクターサイズのオーディオ出力に関するメモ

・オーディオ出力の流れ
オーディオ出力は、オーディオバッファに格納したオーディオデータ(サンプル)がオーディオインタフェースへ定期的に送信されて音が出る。CPUはオーディオインタフェースへの送信処理より前に、次のサンプルをバッファへ格納しておかなければならない。Maxではバッファからインタフェースへサンプルを送信する際に割り込みを発生させ処理を行う。



・I/Oベクターサイズ
バッファからオーディオインタフェースへ送信する1回のサンプル数
(バッファ→オーディオインタフェースへのサイズ)

・シグナルベクターサイズ
Maxの1回のルーチンでバッファへ格納するサンプル数
(Max→バッファへのサイズ)

・I/Oベクターサイズが小さい時
オーディオインタフェースへ送信するタイミング(割り込み)が多くなる。Maxがバッファへサンプルを格納する時間がタイトになる。

・I/Oベクターサイズが大きい時
オーディオインタフェースへ送信するタイミング(割り込み)が少なくなる。Maxがバッファへサンプルを格納する時間に余裕ができる。

・シグナルベクターサイズが小さい時
Max全体の1回のルーチンでバッファへ格納するサンプル数が少なくなる。たくさんのルーチンで格納することになる。

・シグナルベクターサイズが大きい時
Max全体の1回のルーチンでバッファへ格納するサンプル数が多くなる。少ないルーチンで格納することになる。


・I/Oベクターサイズと処理時間
例)
I/Oベクターサイズが512, インタフェースのサンプリングレートが44100Hzの場合
バッファからインタフェースへの1秒間の送信回数:44100/512=86.1回
送信準備に与えられる秒数:1.0/86.1=0.011秒
(つまり0.011秒以内に次のサンプルを用意しなければならない)

I/Oベクターサイズが1024, インタフェースのサンプリングレートが44100Hzの場合
バッファからインタフェースへの送信インターバルは44100/1024=43.0回
送信準備に与えられる秒数:1.0/86.1=0.023秒
(つまり0.023秒以内に次のサンプルを用意しなければならない)

Max内でたくさんの処理がある場合、I/Oベクターサイズを多めにして、サンプルを用意する時間に余裕を持たせると良い場合がある。シグナルベクターサイズは、Maxパッチの処理の内容(一定時間毎の処理の量)に応じて工夫する。


参考:
http://www.shonan-inet.or.jp/~hiro-s/pages/MSP_doc/audioio_01.html

2018年4月11日水曜日

Max7でスタンドアロンに書き出した際に、pattrstorageの値が変更できない

Max7のpattrstorageをスタンドアロンで利用する場合のメモ

環境
macOS10.12.6, Max7.3.4

問題
スタンドアロンに書き出した際に、pattrstorageの値が変更できない

原因
pattrstorageオブジェクトのfileusagemode属性がデフォルトで0になっているが、この場合、スタンドアロン書き出し時点でのpattrstorageのjsonファイルがコレクティブに内包され、その設定に固定されるため。

解決
pattrstorageオブジェクトの属性(attributes)を以下に設定し、pattrstorageのjsonファイルをスタンドアロンと同じフォルダに配置する(配置していない場合は、スタンドアロンを閉じる際に保存ダイアログが表示される)。

pattrstorageの属性設定
@savemode 3
@fileusagemode 1


参考:
https://cycling74.com/forums/pattrstorage-doesnt-overwrite-preset-files-in-standalone




2018年2月28日水曜日

App NapによってNSTimerなどが停止

環境
macOS Sierra (10.12.6), XCode9.2

問題
アプリが他のアプリの裏側に移動するなど、バックグラウンドに移動した際に、40秒程度でNSTimerなどの動作が停止する問題。

原因
macOS10.9から導入されたApp Napによって、バックグラウンドに回ったアプリのスレッドが停止するため。

解決
NSProcessInfoのシングルトンにbeginActivityWithOptions:reason:メソッドで背景に移動してもスレッドを停止しないようにする。
(※beginActivityWithOptions:の戻り値をretainして保持しなければならない。)

以下、例
activity = [[[NSProcessInfo processInfo] beginActivityWithOptions:NSActivityIdleSystemSleepDisabled|NSActivitySuddenTerminationDisabled reason:@"Sending OSC in Background."] retain];


参考:
https://stackoverflow.com/questions/19847293/disable-app-nap-in-macos-10-9-mavericks-application
https://arstechnica.com/gadgets/2013/10/os-x-10-9/15/#app-nap-api
https://developer.apple.com/library/content/releasenotes/MacOSX/WhatsNewInOSX/Articles/MacOSX10_9.html#//apple_ref/doc/uid/TP40013207-CH100

2018年1月9日火曜日

CSS, 画像を枠内に収まるよう自動リサイズする

以下。備忘録。

img{ width:auto; height:auto; max-width:100%; max-height:100%; } 参考になりました。 http://am-yu.net/2015/05/24/image-size-fit-frame/

2017年1月8日日曜日

Raspberry PI, HDMIから音声を出す

問題
Raspberry PIでHDMI接続時に、音声が出ない

環境
Raspberry PI3, Raspbian Jessie

原因
デフォルトではHDMI DriverのモードがDVIモード(音声は別途出力)になっている

解決
HDMI Driverモードを変更すうr

1./boot/config.txtを編集
viでconfig.txtを開き、以下を編集
sudo vi /boot/config.txt

#hdmi_driver=2
hdmi_driver=1

2.再起動


参考
http://s2jp.com/2013/12/raspberry-pi-sound/




Raspberry PIで再生させる生h264動画ファイルをMacで書き出す方法

Raspberry PIで再生させる生h264動画ファイルをMacで書き出す方法

問題
Macで書き出したh264コーデックの.movファイルや.mp4ファイルがRasperry piで再生できない。

環境
MacBookPro, OSX Sierra
Raspberry PI 3, Raspbian Jessie

原因
動画ファイルは生のh264ファイルの必要がある。
(.movなどのファイルコンテナに含めるとうまく認識できない)

解決
ffmpegで.movファイルなどから、生の.h264ファイルに変換する

1.ffmpegのダウンロード
http://ffmpeg.org/download.html

2.ターミナルからffmpegで変換
ffmpeg -i test.mov test.h264


参考
https://www.raspberrypi.org/forums/viewtopic.php?t=7547&p=105088

2016年12月30日金曜日

MAMPでSSL

MAMPでSSLを利用する方法。

以下、ブラウザからhttps://localhost/へアクセスできるようにする。

環境:
MacOS Sierra (10.12),  MAMP 3.4/4.0.6
ssl証明書の場所:/Applications/MAMP/conf/apache/


1.ターミナルからOpenSSLで秘密鍵/公開鍵/電子署名の作成

1-1.秘密鍵ファイル(Private Key)の作成
(RSA: 暗号技術開発者のイニシャルから Ron Rivest, Adi Shamir, and Leonard Adleman)
cd /Applications/MAMP/conf/apache/
openssl genrsa -des3 -out server_private.key 2048

1-2. 証明書要求ファイル(Certificate Signing Request)の作成
(証明書要求ファイル作成には公開鍵が必要だが、opensslが自動的に生成し含める)
openssl req -new -key server_private.key -out server.csr

(以下、サーバに関する情報の入力が求められるが、MAMPで使う場合は省略してよいもよい。以下はOrganization NameとCommon Nameのみ追加)
Country Name (2 letter code) [AU]: JP
State or Province Name (full name) [Some-State]:
Locality Name (eg, city) []:
Organization Name (eg, company) [Internet Widgits Pty Ltd]:localhost ltd
Organizational Unit Name (eg, section) []:
Common Name (eg, YOUR name) []:localhost
Email Address []:
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:

1-3. 証明書ファイル(.crt=Certificate)の作成
本来はVeriSignなどの署名機関へ送るが、ここでは自身が署名機関として署名ファイルを作成する。
以下、x.509暗号/期限1年(365日)の場合
openssl x509 -in server.csr -days 365 -req -signkey server_private.key -out server.crt

1-4.公開鍵の作成
openssl rsa -in server_private.key -out server.key


2./Applications/MAMP/conf/apache/http.confの2箇所を修正
#Include /Applications/MAMP/conf/apache/extra/httpd-ssl.conf
Include /Applications/MAMP/conf/apache/extra/httpd-ssl.conf

#Include /Applications/MAMP/conf/apache/extra/httpd-vhosts.conf
Include /Applications/MAMP/conf/apache/extra/httpd-vhosts.conf


3./Applications/MAMP/conf/apache/extra/httpd-ssl.confを修正
・ServerNameをlocalhost:443に変更
・DocumentRootも必要であれば任意のものに修正
#   General setup for the virtual host
DocumentRoot "/Applications/MAMP/htdocs"
ServerName localhost:443
ServerAdmin you@example.com
ErrorLog "/Applications/MAMP/Library/logs/error_log"
TransferLog "/Applications/MAMP/Library/logs/access_log"


4./Applications/MAMP/conf/apache/extra/httpd-vhosts.confを修正
・ServerNameをlocalhostに変更
・DocumentRootも必要であれば任意のものに修正
#
# VirtualHost example:
# Almost any Apache directive may go into a VirtualHost container.
# The first VirtualHost section is used for all requests that do not
# match a ServerName or ServerAlias in any block.
#

<VirtualHost *:80>
    ServerAdmin webmaster@dummy-host2.example.com
    DocumentRoot "/Applications/MAMP/htdocs"
    ServerName localhost
    ErrorLog "logs/dummy-host2.example.com-error_log"
    CustomLog "logs/dummy-host2.example.com-access_log" common
</VirtualHost>


5.MAMPのApacheポートを80に変更して再起動
(ポート80でないとApacheの起動に失敗する)

以上。

参考: