zuntan02のはてなブログ

備忘録的なものです。時々職場の技術者ブログにも転記してますが、メインはこちらで。

【VHSビデオテープをPCに取り込んだメモ・2014年-2016年】

VHSテープ2年ほどかけてPCに取込んでいて、割と安定したかと思うので、経緯とか含めてちょっとまとめておきます。

【経緯】

・5台ほど持っていたVHSのビデオデッキが次々と壊れてしまって、とうとう完動品がゼロに。
・押し入れには数百本のVHSビデオテープ(主に90年代に録画したアニメなど)がある。
いまさら見返すこともない、とは思えど、捨てるために(保険として)”とりあえず”デジタル化することにした。

【取り込み(VHS→mpeg2-ts)を行ったセット】

・VHSデッキ:SONY SLV-R100ハードオフで5000円位で購入。このシリーズの「リアリティー・リジェネレーター」が個人的に重要で結構探した)
f:id:zuntan02:20160619073350j:plain
・キャプチャユニット:I-O DATA GV-USBGV-USB2ではなく、その前のモデル。2010年頃に4000円位で買ったもの)
f:id:zuntan02:20160619074049j:plain
・PC&OS:MacBook (13-inch, Aluminum, Late 2008)(2.0GHz Core 2 Duo/メモリ8GB)にWindows8→途中から10
・ストレージ:USB外付けHDD、3TB*3台

・取り込みソフト:VLC Media Player 2.1.0(フリー)※
 →ファイル形式:MPEG-2(TS)
・ファイル分割ソフト:MurdocCutter(フリー)
・mp4化:Freemake Video Converter(フリー)
VLCのバージョンについて
何となく最新版にアップデートしてみたところ、directshow(GV-USBからの取り込み)ができなくなってしまいました。
バージョンを落としながら確認していったところ、現在は2.1.0で安定動作しています。


【取り込み手順図解】

1)キャプチャユニットはビデオ入力にのみ利用。音声はライン入力とした(音声がうまく入力されなかったので)
f:id:zuntan02:20160619073946j:plain
f:id:zuntan02:20160619073922j:plain

2)キャプチャユニット付属のチェックツールで画面が表示されることを確認
f:id:zuntan02:20160619073948j:plain
f:id:zuntan02:20160619074001j:plain

3)VLCで取り込み
f:id:zuntan02:20160619074311j:plain
f:id:zuntan02:20160619074400j:plain
※音声はOSのライン入力レベルで調整
f:id:zuntan02:20160619074512j:plain

【取り込んだ後のtsファイル分割について】

適当に録画した映像をMurdocCutterでちまちま分離するのが結構楽しかった。
こんなの録画してたっけ!?みたいな。
MurdocCutter:地デジなどMPEG2-TSファイルの頭出しやCMカット等、簡単な編集を行えるフリーソフト - ぼくんちのTV 別館

【分割後のmp4化】

Freemake Video Converterウォーターマーク入るようになったので使用中止。
Handbreak
で簡単に。ソースの画質がアレなので、画質にはこだわりなし。初期値でGo。

【一時試してたけどやめたセット】

PCが専有されるのがつらくて、取り込み専用機を購入してみた。

専用ハードウェア:アナ録(GV-VCBOX)


けど、下記に示す理由でやめた。

やめた理由:
・GV-USBで取り込んだものに比較してかなり画質が荒い。
・妙に輝度が高い。派手に白飛びする。アニメの主線が潰れるレベル。
・mpeg4化することでファイルサイズの圧縮を期待したけど、mpeg2-tsと比較して殆どサイズに違いが無かった
・フォーマットがFAT32のみなので、FAT32のファイルサイズ上限:4GBでファイルが分割される。PCに取り込んでからフリーのツールでくっつけることは可能だけど、この機材単体では厳しい。

※簡単で至極直感的にアナログビデオからデジタル化できる/PCを占領されない、など画質へのこだわりがなければとても良い製品だと思う。あくまで手持ちのGV-USBと比較すると全く劣って見えた、ということで。


【感想】
見返してみて、あんまりお宝映像みたいなのはなかったけど、20年前の自分がどんなものを見て、どんなものを残そうとしていたのか、を思い出せて、結構楽しい経験だった。ビデオテープは何袋も捨てたけど(多分2~300本?)、結局そんなに空間が自由になったわけでもなく。空いた分はあっという間に本が埋め尽くしたという。うーん、次はアレか、書籍の自炊。修羅の道だなぁ……

Bashメモ

Ctrl+A 行の先頭
Crtl+E 行の最後
Ctrl+D カーソル場所を一文字削除
Ctrl+H Backspaceと同じ(左を一文字削除)
Ctrl+L 画面のクリアとカレント業の再表示
Ctrl+C 処理中断
Ctrl+S 画面の出力を停止(裏で処理は動いている)
Ctrl+Q 画面の出力を再開
Ctrl+Z 処理を一時停止(サスペンド
→Ctrl+zのあと:
fgコマンドで一時中断していたジョブをフォアグラウンドで実行再開
bgコマンドで一時中断していたジョブをバックグラウンドで実行再開

【AWS】(AmazonLinux・CentOS)nginxのログをデイリーでローテーションしつつs3に上げる

いろんなところから切貼。主に以下の本p181。
gihyo.jp

■AmazonLinux(EC2)で、サーバにS3アクセス可能ロールが付与されている場合

※以下はS3への十分なアクセス権ロールが付与されていることが前提。FullAccessとか・・・


/etc/logrotate.d/nginx を以下の様に。

/var/log/nginx/*.log {
    daily
    rotate 24
    compress
    missingok
    notifempty
    sharedscrits
    postrotate
        [ ! -f /var/run/nginx.pid ] || kill -USR1 `cat /var/run/nginx.pid`
    endscript

    lastaction
        HOSTNAME=`hostname`
        filename=$1
        today=`date +"%Y%m%d"`
        echo "uploading ${filename}" > /var/log/logrotate.nginx
        for f in `ls -l ${filename}`; do
            upload_file="${f}-${today}.gz"
            aws s3 cp ${upload_file} s3://hogehoge-logs/${HOSTNAME}/`basename ${upload_file}` >> /var/log/logrotate.nginx 2>&1
        done
    endscript

}

■AmazonLinuxじゃない(EC2じゃない)CentOSでもやってみた

s3アクセスを許可したIAMアカウントを作成し、アクセスキー等を取得しておく

(手順省略)

AWS Cliをインストールする
yum install -y python-setuptools
easy_install pip
pip install awscli

# 確認
aws --version

# 作業ユーザのタブ補完有効化
vi ~/.bashrc

末尾に以下を追記

# for AWS Cli
complete -C /usr/bin/aws_completer aws

aws s3 [TAB]などで補完が効きます。

定義ファイル(credentials)の作成

aws configure
AWS Access Key ID [None]: <アクセスキー>
AWS Secret Access Key [None]: <シークレットアクセスキー>
Default region name [None]:<リージョン>
Default output format [None]:

→~/.aws/credentialsに上記内容が保存される。

# s3コマンド叩いてみる
aws s3 ls

# nginx のログローテーションに追記
事前にS3バケット:hogehoge-logs を作成しておく

vi /etc/logrotate.d/nginx

/var/log/nginx/*.log {
    daily
    rotate 24
    compress
    missingok
    notifempty
    sharedscrits
    postrotate
        [ ! -f /var/run/nginx.pid ] || kill -USR1 `cat /var/run/nginx.pid`
    endscript

    lastaction
        export AWS_SHARED_CREDENTIALS_FILE=/root/.aws/credentials
        HOSTNAME=`hostname`
        filename=$1
        today=`date +"%Y%m%d"`
        echo "uploading ${filename}" > /var/log/logrotate.nginx
        for f in `ls -l ${filename}`; do
            upload_file="${f}-${today}.gz"
            aws s3 cp ${upload_file} s3://hogehoge-logs/${HOSTNAME}/`basename ${upload_file}` >> /var/log/logrotate.nginx 2>&1
        done
    endscript

}
上記との違いについて

> export AWS_SHARED_CREDENTIALS_FILE=/root/.aws/credentials
を追記し、credentialsの場所を明示的に指定してやっています。

S3からログ取得メモ

上記の様にしてS3に保存したログをまとめて取得したい

# 一覧確認
aws s3 ls s3://hogehoge-logs/server01/2017/

server01_log.20170201.tar.gz
server01_log.20170202.tar.gz
…
server01_log.20170228.tar.gz


# ログをまとめて取得

aws s3 cp s3://hogehoge-logs/server01/2017/ . --recursive --exclude "*" --include "*_log.201702*"

# ワイルドカードはそのまま使えない。このようにしてexcludeでいったん全部対象外とした後、includeで対象を指定する
# 参照:http://dev.classmethod.jp/cloud/aws/s3-logfile-copy-by-awscli/

以上。

【CentOS6】aipo_to_gcal(Aipoのカレンダーをgoogleカレンダーに同期するツール)のセットアップメモ

# 手順
# http://qiita.com/fantasista_21jp/items/4172f4062b44cbc004db

上記手順のままではCentOS6で動かなかった?ので自分の作業メモ。

# Google Developer Consoleでの設定等事前準備については上記手順書に従ってください。

# 設置先について:
# php55以降が必要とのこと。

php -v
# PHP 5.5.34 (cli) (built: Mar 31 2016 17:19:11)
# Copyright (c) 1997-2015 The PHP Group
# Zend Engine v2.5.0, Copyright (c) 1998-2015 Zend Technologies
→OK

# Composer導入前にphp.ini修正
cp /etc/php.ini /etc/php.ini.bak

vi /etc/php.ini
# -----timezoneを設定
date.timezone = "Asia/Tokyo"
# -----

# -----以下を下端に追加
detect_unicode = Off
# -----

# 同期ツール(aipo_to_gcal)のソースをgitから取得

以下hogehogeユーザで作業
cd ~
git clone https://github.com/fantasista21jp/aipo_to_gcal.git
# remote: Counting objects: 48, done.
# remote: Compressing objects: 100% (23/23), done.
# remote: Total 48 (delta 24), reused 46 (delta 24), pack-reused 0
# Unpacking objects: 100% (48/48), done.

# Composer用意

cd aipo_to_gcal
curl -s http://getcomposer.org/installer | php
# All settings correct for using Composer
# Downloading 1.0.0...
# 
# Composer successfully installed to: /home/hogehoge/composer.phar
# Use it: php composer.phar

php composer.phar install
# Loading composer repositories with package information
# Updating dependencies (including require-dev)
#   - Installing google/apiclient (1.1.2)
#     Downloading: 100%
# 
#   - Installing react/promise (v2.2.0)
#     Downloading: 100%
# 
#   - Installing guzzlehttp/streams (3.0.0)
#     Downloading: 100%
# 
#   - Installing guzzlehttp/ringphp (1.0.5)
#     Downloading: 100%
# 
#   - Installing guzzlehttp/guzzle (5.1.0)
#     Downloading: 100%
# 
#   - Installing kigkonsult/icalcreator (dev-master ae7c760)
#     Cloning 省略
# 
# Writing lock file
# Generating autoload files

# p12証明書を配置
/home/hogehoge/aipo_to_gcal/hogehoge.p12


# configsファイル作成
vi configs.php

<?php
// =========================================================
// Settings
// =========================================================
$clientId = 'hogehoge';
$authEmail = 'hogehoge@gserviceaccount.com';
$p12Key = '/home/hogehoge/aipo_to_gcal/hogehoge.p12';
$targetCalendar = 'hogehoge-schedule';
$aipoUser = 'hogehoge';
$aipoPasswd = 'fugafuga';
$aipoIcalUrl = 'https://hogehoge.jp/ical/calendar.ics';
// =========================================================

# テスト実行
php /home/hogehoge/aipo_to_gcal/upload.php

# 追加して実行
php /home/hogehoge/aipo_to_gcal/upload.php
# [Insert Event]:同期のテストです (2016-04-16T13:00:00+09:00)

# 削除して実行
php /home/hogehoge/aipo_to_gcal/upload.php
# [Delete Event]:同期のテストです (2016-04-16T13:00:00+09:00)

→該当のGoogleカレンダーに同期されたことを確認。OK

# hogehogeのcrontabに設置
# 5分おきに実行

## aipo_to_gcal for hogehoge
*/5 * * * * /usr/bin/php /home/hogehoge/aipo_to_gcal/upload.php

以上

STREAM S 302HW キャリアメールの使い方について2016

【まとめ】

Y!mobileでSTREAM S 302HWを2016年4月現在もご利用の方で、hogehoge@ymobile1.ne.jpからのキャリアメール送信ができないという方は、GoogleハングアウトじゃなくてGoogleメッセンジャーアプリを利用すると解決するかもしれません。

【手順詳細メモ】

Y!mobileでSTREAM S 302HWを2016年4月現在もご利用の方で、hogehoge@ymobile1.ne.jpからのキャリアメール送信ができないという方は、以下の手順でやってみたら解決するかも。

1)My Y!mobile(https://my.ymobile.jp/)でY!mobile メールが有効になっていることを確認する。
2)Googleの「メッセンジャー」アプリがインストールされていなければインストールする。 
play.google.com

3)メッセンジャーアプリを起動すると、(デフォルトになっていない場合)デフォルトのSMSアプリとして利用するかどうか確認されるので、利用する。
4)画面右下の[+]ボタンより開く画面で宛先に空メール送信先を記載して送信すればOK

【経緯とか】

地域のお知らせメールはまだまだキャリアメールでないとNGなところが多い。
ワイモバイル端末ではキャリアメールの扱いに苦労することが多いんだけど、302HWは特にhogehoge@ymobile1.ne.jpとか”1”付きで特別扱いされていて、どうもY!mobile メールもでもうまくいかない模様。具体的には、Y!モバイルで提供されている標準メールアプリ「Y!mobileメール」でも解決しなかった。自分の調べ方が足りなかったのかもしれないが。

今回一部ではおなじみのwbi.jp(http://www.samuraing.jp/mb/)に登録する必要があって、gmailやyahooドメインで空メールを送信しても受け付けてくれなかったのでハマった。昨年(2015年)はハングアウトのSMS/MMS機能でうまくいったと思うのだけど、今年はだめ。そういえばハングアウトがSMS/MMSは「メッセンジャー」に移ったんだっけ、と思ってこっちをインストールしてみたらうまくいったのであった。

ここまで来るのに2時間くらい費やしたので後世の役に立てば。。

さくらのクラウドでアーカイブを別ゾーンから利用したいときはアーカイブのゾーン間コピーが必要

さくらのクラウドアーカイブを別ゾーンから利用したいときはアーカイブのゾーン間コピーが必要。
http://cloud-news.sakura.ad.jp/2013/11/28/zone-archive-copy/

例)ゾーンA上にあるアーカイブをゾーンBで使いたいとき

1)管理画面でゾーンBを選択後、[アーカイブ]-[追加]-[アーカイブソース]でゾーンAを指定
2)[アーカイブ選択]で欲しいアーカイブを選択して[作成]

これで利用できるようになります。

多段ポートフォワードについて

sshに鍵認証を設定したのち、/home/user/.ssh/configに書いて多段sshログインするパターンで、OpenSSHのバージョンによって使えるProxyCommandが異なったため、ハマりましたのでメモ。

目的:ユーザ:hogehogeで、バックグラウンドにて多段sshポートフォワードしたい


[サーバA]ここから
 ↓
[サーバB]ここを踏み台にして
 ↓
[サーバC]ここにsshする

公開鍵認証する

# ssh2 鍵ペアの作成
# サーバAにて以下のコマンドを実行
su - hogehoge
ssh-keygen -t rsa -N "" -f /home/hogehoge/.ssh/id_rsa

# 接続先ホストへ公開鍵(/home/hogehoge/.ssh/id_rsaファイルの中身)を追記
# サーバB
vi /home/hogehoge/.ssh/authorized_keys
# →サーバAの/home/hogehoge/.ssh/id_rsa.pubの中身を貼り付け

# 権限は600であること
chmod 600 ~/.ssh/authorized_keys


# サーバCにも公開鍵を配置
# サーバC
vi /home/hogehoge/.ssh/authorized_keys
# →サーバAの/home/hogehoge/.ssh/id_rsa.pubの中身を貼り付け

# 権限は600であること
chmod 600 ~/.ssh/authorized_keys

config修正

# .ssh/configに記載
# 多段SSHかつポートフォワーディングの場合
# 参考:http://qiita.com/lasta/items/41e95a2fdded18c34dae

vi /home/hogehoge/.ssh/config

OpenSSH 5.3未満(サーバBにもnetcatが入っていること前提)

Host           サーバB
HostName       2xx.1xx.2xx.xxx
User           hogehoge
GatewayPorts   yes
IdentityFile   ~/.ssh/id_rsa

Host           サーバC
HostName       192.168.xxx.xxx
User           hogehoge
GatewayPorts   yes
ProxyCommand   ssh サーバB nc %h %p
IdentityFile   ~/.ssh/id_rsa

OpenSSH 5.4以上(-W:netcat mode)

Host           サーバB
HostName       2xx.1xx.2xx.xxx
User           hogehoge
GatewayPorts   yes
IdentityFile   ~/.ssh/id_rsa

Host           サーバC
HostName       192.168.xxx.xxx
User           hogehoge
GatewayPorts   yes
ProxyCommand   ssh -CW %h:%p サーバB
IdentityFile   ~/.ssh/id_rsa

上記設定にて、hogehogeユーザでssh サーバCがパスワードなしで行えたら、最後にポートフォワードをバックグランドで実施します。
# -f : バックグラウンドで動作
# -N : コマンド実行無し

su - hogehoge
ssh -f -N -L 10025:localhost:1521 サーバC

これで、サーバAの10025→サーバCの1521にポートフォワードができました。