ffmpeg -r 30 -i images2/image_%3d.jpeg test.avi
2014年5月30日金曜日
2014年5月29日木曜日
動画フェードアウトと連結、個人用メモ
実行する際には、1回でやることが出来る。エンコード回数を減らすほうが良い。
それぞれの機能用コマンドを見る意味で分けた。
フェイドアウト
連結
それぞれの機能用コマンドを見る意味で分けた。
フェイドアウト
ffmpeg.exe -i [src_file_path] -vf "fade=out:810:90:" -af "afade=t=out:ss=27:d=27" -vcodec libx264 -acodec libvo_aacenc -y [dst_file_path]
連結
ffmpeg -i [src_file_path] -i [src_file_path2] -filter_complex concat=n=2:v=1:a=0 [dst_file_path]
2014年5月27日火曜日
Google App Engine SDKをEclipseで動かす
GAEのSDKをEclipseで起動する場合のメモ。
まずは以下のPyDevプラグインを追加します。
以下はRun設定です。
引数は以下の用に指定します。
実行に成功した場合のコンソール出力です。
ここまでできたら、local:8080 に接続しましょう。
まずは以下のPyDevプラグインを追加します。
以下はRun設定です。
引数は以下の用に指定します。
実行に成功した場合のコンソール出力です。
ここまでできたら、local:8080 に接続しましょう。
2014年5月24日土曜日
はじめてのPython GoogleAppEngineのチュートリアル 1
はじめてのPython フレームワーク
webapp2 は google app engine のフレームワークです。
他にも Django や CherryPy、Pylonsなどが使えますが、webapp2 は Google App Engineの
環境を作成するときにインストールされるので、すぐ使えます。
webapp2
* RequestHandlerクラス:リクエスを処理してレスポンスを生成
* WEGIアプリケーションインスタンス:受信リクエストをURLに基づきハンドラに割り振る
# もっとも単純な例
以下がもっとも単純な例です。
RequestHandlerを継承したクラスのgetメソッドを作成すると、self.requestを通してリクエスト情報を取得出来ます。
通常は、self.response にプロパティを設定して終了します。
webapp2.WSGIApplication インスタンスがアプリケーションです。
debug=trueで、ハンドラにエラーが発生したり、キャッチされない例外が発生した場合にブラウザに出力します。
# ユーザ認証
以下の例は、ユーザのログイン認証機能を追加したものです。
users.get_current_user() で サインイン済みなら Userオブジェクトが、違う場合は None を得られます。
# フォーム
以下がフォームを使った例です。
また、webapp2のimportをyamlファイルに移動しています。
この例にはハンドラが2つ出てきます。
MainPageとGuestbookです。それぞれURL、/ と /sign に対応しています。
Guestbookではpostのみが定義されています。
cgi.escape()は、HTMLの特殊文字をエスケープします。ユーザに入力された文字が、HTMLとして動作するのを防いでいます。
cgiはPythonの標準ライブラリです。
○cgiドキュメント
https://docs.python.org/release/2.7.2/library/cgi.html
今日はここまで、次はDatastoreにデータを永続化してみます。
webapp2 は google app engine のフレームワークです。
他にも Django や CherryPy、Pylonsなどが使えますが、webapp2 は Google App Engineの
環境を作成するときにインストールされるので、すぐ使えます。
webapp2
* RequestHandlerクラス:リクエスを処理してレスポンスを生成
* WEGIアプリケーションインスタンス:受信リクエストをURLに基づきハンドラに割り振る
# もっとも単純な例
以下がもっとも単純な例です。
RequestHandlerを継承したクラスのgetメソッドを作成すると、self.requestを通してリクエスト情報を取得出来ます。
通常は、self.response にプロパティを設定して終了します。
webapp2.WSGIApplication インスタンスがアプリケーションです。
debug=trueで、ハンドラにエラーが発生したり、キャッチされない例外が発生した場合にブラウザに出力します。
# ユーザ認証
以下の例は、ユーザのログイン認証機能を追加したものです。
users.get_current_user() で サインイン済みなら Userオブジェクトが、違う場合は None を得られます。
# フォーム
以下がフォームを使った例です。
また、webapp2のimportをyamlファイルに移動しています。
この例にはハンドラが2つ出てきます。
MainPageとGuestbookです。それぞれURL、/ と /sign に対応しています。
Guestbookではpostのみが定義されています。
cgi.escape()は、HTMLの特殊文字をエスケープします。ユーザに入力された文字が、HTMLとして動作するのを防いでいます。
cgiはPythonの標準ライブラリです。
○cgiドキュメント
https://docs.python.org/release/2.7.2/library/cgi.html
今日はここまで、次はDatastoreにデータを永続化してみます。
はじめてのPython 書式編
Pythonの書式についてひと通り見たまとめ。
最初のうちの備忘録。
最初のうちの備忘録。
標準出力・演算・ループ
新鮮です。主に扱ってきた言語が C++、C#、Java だからでしょうか。
でも拒否感は無いですし、行が少なくなるのはいいですね。
関数
Java8でラムダ式が追加されたのを機に使おう!と思っていてあまり使っていないラムダ式。クラス・オブジェクト
特に無し。継承
上のクラスを継承したクラス。
インポート方法
なるほど、こうやってモジュールの中の一部をロード出来るんですね。
2014年5月23日金曜日
Python for Google App Engine
出来るだけシンプルにPythonでWEBアプリ実装したいと思い、いままで使ってこなかったGoogle App Engine を使ってみようと思います。
Google のドキュメントを訳してくれている素晴らしい方がいました。
参考にさせてもらいながら、環境を作成します。
○Python for Google App Engine : Python tutorial の和訳
○インストール時の注意点
インストールディレクトリはデフォルトのままよりも、C:\GoolgleAppEngine などに変更しましょう。
ホワイトスペースを間に含むとあまり良くないです。
○pycharm の CE は Google App Engine プロジェクトに対応していない。
うーん、楽に開発したいので、どうしよ。
2014年5月19日月曜日
はじめての python 環境作成
python 開発環境を作成しよう
時系列解析環境を作成するため、python 環境を作成する。
pythonの日本コミュニティ
http://www.python.jp/
インストール
2系の最新版、python 2.7.6 にすることにしました。
https://www.python.org/downloads/
※python3系の対応ライブラリの件がよくわからなかったので、2系を選択。
慣れてきたら3系環境も構築しよう。
インストールはダウンロードした実行ファイルを使用するだけ。
インストールフォルダは変更しない方が良いようです。というのも、他の数値計算ライブラリをインストールするとき便利だからです。
ライブラリ
今回導入するライブラリは以下です。
pyaudio 音声ライブラリ
http://people.csail.mit.edu/hubert/pyaudio/
Numpy & Scipy 科学計算ライブラリ
http://www.scipy.org/scipylib/download.html
全部、exeを実行するだけでOK。
matplotlib グラフプロットライブラリ
http://matplotlib.org/
IDE
PyCharmをインストールします。http://www.jetbrains.com/pycharm/
昔は有料版しかなかったようですが、CE(無料版)が出ています。
有名なIDEのコマンドを使えるようです。
使い慣れたIDEを選ぶと良いと思います。
PyCharmを初回起動すると、Pythonの実行ファイルを設定するように求められます。
以下を設定します。
[Pythonインストールフォルダ]/python.exe
以上で、開発環境の構築が完了です。
2014年5月12日月曜日
動画音声のノーマライズ
プログラムに組み込むため、dll もしくは コマンドライン(exe) で動画音声調整する方法。
(今回は、音声コーデックが AAC の動画が対象)
aacgain というソフトウェアを使用した。
下記のページの AACGain v1.9が最新
http://www.rarewares.org/aac-encoders.php
dll では libFAAC があったが、今回は使用せず。
aacgain /r /c /k /p [filepath] ...
・分析のみを行う
aacgain /s s [filepath] ...
・/d で指定した変更を行うとどうなるかを解析する
aacgain /s s /d 5 [filepath] ...
(今回は、音声コーデックが AAC の動画が対象)
aacgain というソフトウェアを使用した。
下記のページの AACGain v1.9が最新
http://www.rarewares.org/aac-encoders.php
dll では libFAAC があったが、今回は使用せず。
【aacgainを使うことのメリット】
- mp4を指定すると、直接音声のノーマライズが可能。
- 動画の映像が劣化しない ← これは効きますね。
- プログラムに組み込むのが容易
○音声ノーマライズ
aacgain /r /c /k /p [filepath] ...
/r :トラックゲインを音声個別に指示 89db → /a に変えると、指定した全ての音声の相対的な音量を保って指示
/c :クリッピングが発生しても確認メッセージを出さないオプション。クリッピング:音が大きすぎて許容値を超えていて、音の割れ、歪の発生の可能性がある。指定しないと、確認メッセージへの応答が必要。
/p :ファイルのタイムスタンプを変更しないオプション
/k :クリッピングしないギリギリまでゲインを自動で下げる
/d トラックゲインの指定 89dbに対して増減を指定する。/d 5 とすれば、89 + 5 = 94 となる。
○音声の分析のみ
・分析のみを行う
aacgain /s s [filepath] ...
Recommended "Track" dB change: -0.370000
Recommended "Track" mp3 gain change: 0
Max PCM sample at current gain: 19850.775391
Max mp3 global gain field: 180
Min mp3 global gain field: 115
Recommended "Album" dB change for all files: -0.370000
Recommended "Album" mp3 gain change for all files: 0
・/d で指定した変更を行うとどうなるかを解析する
aacgain /s s /d 5 [filepath] ...
Recommended "Track" dB change: 4.630000
Recommended "Track" mp3 gain change: 3 ← /d は目標のdbまで1.5db刻みで最も近いものを計算する。
WARNING: some clipping may occur with this gain change!
Max PCM sample at current gain: 19850.775391
Max mp3 global gain field: 180
Min mp3 global gain field: 115
Recommended "Album" dB change for all files: 4.630000
Recommended "Album" mp3 gain change for all files: 3
WARNING: with this global gain change, some clipping may occur in file after_converter.mp4 ← /d 5 するとクリッピングすることを示す
LaTeX を Windows で使う ShareLaTeX
WindowsにTeXをインストールして~、とかやろうと思ったけど、けっこう時間かかりそう。
時間の無い社会人院生にとっては結構無駄な時間。
オンラインで良いツールがありました。ShareLaTeX。デザインもブートストラップで少なくともここ3年くらいのものだろうし、ありがたく使わせていただこうと。
数学記号の入力にまずは慣れるために参考になるリンク。
時間の無い社会人院生にとっては結構無駄な時間。
オンラインで良いツールがありました。ShareLaTeX。デザインもブートストラップで少なくともここ3年くらいのものだろうし、ありがたく使わせていただこうと。
数学記号の入力にまずは慣れるために参考になるリンク。
後は習うより慣れろ、ですね。
2014年5月6日火曜日
MySQL 2つのカラムデータをお互いに入れ替える
2つのカラムデータを入れ替えたいこと。
最大値と最小値を間違えたりすると発生します。
以下のように入れ替える事ができます。
以上です。
ユーザ変数を定義する機会ってあまりないので、思いつかなかった。
最大値と最小値を間違えたりすると発生します。
以下のように入れ替える事ができます。
set @str = 0;
update table `column1` = (@str := `column1`)*0+`column2`, `column2` = @str
where id > 0;
以上です。
ユーザ変数を定義する機会ってあまりないので、思いつかなかった。
登録:
投稿 (Atom)