Macで動画の編集をしてるとm4vというファイルに出くわした。
まあこのファイル自体は昔からよく見たことがあったけど「大体mp4と一緒のもの」程度の認識しかして来なかったのでこれを機会に正確に調べて見ることにした。
多分よくある間違い まず日本語で検索して出てくる
mp4とm4vの違いって何ですか? - Yahoo!知恵袋
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1113798691
m4v 対応拡張子 動画変換・動画ダウンロードの無料フリーソフト
http://www.woopiedesktop.com/extension/m4v
MacでM4V変換ソフトとMacでM4V動画変換方法
http://www.wondershare.jp/howtoconvert/m4v-converter-mac.html
この3つのサイトに書かれている説明
M4VとMP4の違いは、圧縮コーデックがH.264かMPEG4かという違いです。
は間違いです。
WikipediaのMP4のページにもありますように、MP4はMPEG4のPart14の略称でありそこに規定されたマルチメディアを格納するコンテナの規格です。
http://ja.wikipedia.org/wiki/MP4
そして上でH.264と比較して述べられてるMPEG4は動画の符号化方式のみをさしています。
ですが、MPEG4 Part14の規格ではH.264に対応しています。
つまりM4VとMP4の違いは圧縮コーデックの違いではありません。
というかMP4への変換を行ったことがある人なら映像部分に使用するコーデックにH.264が表示されているのでわかると思いますが…。
コピペして他人のサイトの内容を使うのに参照元を書かないから、このようにどんどん間違った理解が広まっていくわけですね。
もう一つよくある誤解 どうやら他にもよく広まってる誤解があるようで、
m4vは映像部分のみ、でm4aが音声部分のみ、mp4が映像+音声の動画
というやつです。
mp4とm4vの違いって何ですか? Wikipediaで調べた所、mp4が公式の拡張子であって、… - Yahoo!知恵袋
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1163953191
の方や、先程も書いた
mp4とm4vの違いって何ですか? - Yahoo!知恵袋
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1113798691
の「その他の回答」の方も勘違いされているようですが、m4aは音声のみを格納していることを示していますが、m4vが映像部分のみを格納してるというわけではありません。
これは
1. m4vがAppleが独自に決めた拡張子であること。
2. Apple製品でm4vで出力したら映像+音声で出力されること。
の2点から明らかに間違いであるとわかります。
それじゃMP4とM4Vの違いは何か? MP4はISO(国際標準化機構)で定められているフォーマット。
M4VはMP4によく似たApple独自の規格。
もっと詳しく知りたい人はここらあたりをどうぞ。
Difference Between Mp4 and M4v | Difference Between | Mp4 vs M4v
http://www.differencebetween.net/technology/difference-between-mp4-and-m4v/
Confusion: M4V vs. MP4?? - MacRumors Forums
Lionでgvimをインストールしてrubyのスクリプトを書きはじめてみると
インデント幅が自分には大きすぎて、それにテキスト全体にインデントを適用する方法がわからなかったので調べました。
rubyやpythonで書いたCGIを動かすためにやっぱりローカルでもテスト環境がほしいのでMacで使えるhttpdを探したら、BSDが元になってるのではじめからApacheが入ってるらしい。
「システム環境設定」→「共有」→「Web共有」をONにするだけでホームフォルダのしたに「サイト」というフォルダが自動的に作成されて、そこに http://localhost/~user/ でアクセスできるようになる様子。こりゃ楽だ。ひゃほーい。
全体の公開フォルダは
/Library/WebServer/Documents
/Library/WebServer/CGI-Executables
の2つになるらしい。
とはいえこんなフォルダを使いたくないのでホームフォルダの下でCGIが実行できるように変更します。
sudo vi /private/etc/apache2/users/[ユーザ名].conf
で設定ファイルを開いて
<Directory "/Users/[ユーザ名]/Sites/"> Options All AllowOverride All Order allow,deny Allow from all AddHandler cgi-script .cgi .rb .py </Directory>
のように書き換えて、
「Web共有」の設定を一旦切ってまたONにしてApacheを再起動。
cd Sites
vi test.rb
で「サイト」フォルダの下に新しいファイルを作って、その中に
#!/usr/bin/ruby
print "Content-Type: text/plain\n\n"
print "hello"
と書いて
chmod 705 test.rb
でファイルを実行可能にしてブラウザで
http://localhost/~[ユーザ名]/test.rb
で test と表示されれば成功です。
何故か途中から敬語になってますが、
参考 Apacheを起動する - Mac OS X LeopardでAMP環境を構築しよう - Apache, MySQL, PHP, Perlで作る開発環境 - futomi’s CGI Cafe
http://www.futomi.com/lecture/macosx/apache.html
前回の記事の続きです。
NHK語学のラジオ講座をさくらのVPSで自動ダウンロード
http://programming.ironsand.net/2012/auto-download-nhk-language-mp3-by-vps/
今回はさくらVPSにダウンロードしたmp3をSugarsyncにアップロードするについて解説します。
さくらのVPS上にSugarSyncやDropboxを常駐させるのはできるのかどうかわかりませんでしたし、できてもメモリを食いそうなので今回はSugarSyncが提供するAPIを使用します。
自動的にSugarSyncにファイルをアップロードさせるための手順は以下の流れになります。
APIを使うためにSugarSyncのDeveloperに登録
upload_nhkradio.rb の設定
cronの設定
1. APIを使うためにSugarSyncのDeveloperに登録 まずSugarSyncのAPIを使うためにDeveloperとして登録を行います。
http://www.sugarsync.com/developer/signup
もしSugarsyncのアカウント自体を持ってない方がいたら、まず[こちら][1]からSugarSync自体のアカウントを作ってください。
Developer登録をすると Access Key ID と Private Access Key が手に入りますのでメモっていてください。あとで必要になります。
次に[Create App]から新しいアプリの登録を行いアプリケーションキーを取得してください。
新しいアプリの作成には以下の5つの情報を入力する必要があります。
Name:[アプリ名]”NHK Radio Uploader”とか適当に
Publisher:[製作者] #名前をいれておきましょう。
Description:[詳細] “Upload NHK radio mp3” とでも。
Support URL:[作者サイト] 自分はTwitterのアカウントいれてます。
Support Email:[連絡先] 普通に自分のメールアドレスを。
以上でAppが作れたら App ID が入手できますのでコレもメモっておいてください。
2. upload_nhkradio.rb の設定 必要な情報が揃いましたので upload_nhkradio.rb の設定を行います。
まず[upload_nhkradio.zip][2]をダウンロードして解凍し、sugarsync.rb, upload_nhkradio.rb, upload_nhkradio_ini.rbの3つのファイルを取り出してください。
そしてupload_nhkradio_ini.rbを開いて先ほど入手した情報とアップロードするフォルダ名を設定します。
#SugarSyncのユーザ名(メールアドレス),パスワード @username = "" @password = "" #App ID /sc/などから始まる英数字 @application = "" @access_key_id = "" @private_access_key = "" #refresh_tokenを設定しておけばusername, passwordはいりません。 #username,passwordで接続すると無駄に一つ多く接続するのでrefresh_tokenを設定して使いましょう。 @refresh_token = "" #SugarSyncのどのフォルダにアップロードするか。 e.
NHKラジオの語学講座を毎週ダウンロードしてるんですが、
外国語を勉強してるのは海外に行くためでして、海外だとダウンロードができないことがよくあります。
なのでせっかくさくらのVPSをお金払って借りてるんだから
勝手にダウンロードするように設定しましたので参考にどうぞ。
月曜日の12時頃には決めておいたフォルダにmp3ファイルができてます。
実際に先週から動かしてみてますが、こりゃ楽でいいです。
SugarSync にアップロードしてるので海外にいるときにiPhoneがあるだけで新しい音声を聞くことも出来ます。
記事が長くなるので今回の
さくらVPSを使って自動的にNHKラジオ講座をダウンロード
次回の
さくらVPSにダウンロードしたmp3をSugarsyncにアップロードする
の2つにわけて解説していきます。
自動的にNHKラジオ講座をダウンロードするには以下の4つの手順が必要です。
flvstreamerのダウンロード、コンパイル
Rubyのインストール
CaptureStream の設定
cronの設定
1. flvstreamerのダウンロード、コンパイル flvstreamer をインストールするんですが、
まずさくらのVPSが32ビットなのか64ビットなのか確認します。
$ cat /proc/cpuinfo | grep flags
して値に lm が含まれていれば64bitのCPUです。
次に
$ uname -a
X86_64とかamd64とかが表示されたら、64ビット版のカーネルです。
64bitだとわかったので、64bitのflvstreamerをインストールしたいんですが、
32bitしかバイナリがおいてないので自分でコンパイルします。
$ wget http://download.savannah.gnu.org/releases/flvstreamer/source/flvstreamer-2.1c1.tar.gz $ tar zxf flvstreamer-2.1c1.tar.gz $ cd flvstreamer $ make posix $ ./flvstreamer FLVStreamer v2.1c1 (c) 2010 Andrej Stepanchuk, Howard Chu, The Flvstreamer Team; license: GPL ERROR: You must specify a hostname (--host) or url (-r "rtmp://host[:port]/playpath") containing a hostname # yum install ruby
Windows7でハードディスクをヤフオクに出すためにチェックディスクをしようと思ったら
chkdsk d:
十分な特権がないので、アクセスは拒否されました。
管理者特権モードで実行しているこのユーティリティを呼び出す必要があります。
と文句を言われてしまいました。
管理者権限で実行するにはデスクトップにでもショートカットを作って、プロパティから「管理者として実行」あたりにチェックを入れれば解決ですが、それさえも面倒臭い。
コンピュータの修理を頼まれて他人のパソコンで使いたい時もあるので、もっとも簡単な方法を紹介します。
ここまで前置き スタートボタンの「プログラムとファイルの検索」に
“cmd” と打てば cmd.exe がフィルタリングされますので、そこで
Ctrl+Shift+Enterで実行します。
これで管理者権限で実行できます。ショートカットさえ覚えておけば初期状態のWindows7で使えるので便利ですね。
参考 Run a Command as Administrator from the Windows 7 / Vista Run box
http://www.howtogeek.com/howto/windows-vista/run-a-command-as-administrator-from-the-windows-vista-run-box/
javascript で大文字、小文字を区別しないで文字列比較がしたい時は、そういう演算子は用意されてないので toLowerCase() で全部小文字にして比較しちゃいましょう。
こんな感じ。
function check(){ foo="ABC"; bar="abc"; if(foo.toLowerCase() == bar.toLowerCase()){ //大文字小文字を無視 alert("ok!!"); }else{ alert("NG!"); } } ちなみに英語で「大文字、小文字を区別しない。」と言いたい時は case-insensitive を使えばよいそうですよ。
jQuery を使って
「クリックされた時に左なら要素を消して、右なら何もしない。」
という動作をさせようと思ったら日本語だと検索してもすぐに答えが出てこなかったので、また stackoverflow から解説を紹介します。
実際のコードがこちら。
$('#element').mousedown(function(event) { switch (event.which) { case 1: alert('Left mouse button pressed'); break; case 2: alert('Middle mouse button pressed'); break; case 3: alert('Right mouse button pressed'); break; default: alert('You have a strange mouse'); } }); mousedown の時に渡されるイベントを確認して場合わけすればよい、と。
つまり左クリックで要素を隠すにはこうします。
//左クリックされると foo を隠す $(".foo").click(function(e){ if(e.which == 1){ //左クリック $(this).hide("fast"); } }); 他の方法 頻繁に使うのであれば jquery.detailclick.js を入れてこんな風に使えるようにしておくとよいかもしれません。やっぱりこちらの方が jQuery っぽくて見やすいですね。
$("target").rightClick(function()
{
$(this).text('右クリックされました!').css('background-color', '#ff3399');
});
参考 javascript - How to distinguish between left and right mouse click with jQuery?
$(window).width() と $(document).width() や
$(window).height() と $(document).height() がどういう時に違う値を返すかわからなかったので検索したら Stack Overflow に簡潔でわかりやすい説明がされてたので紹介します。
When you have a scrollbar on the webpage.
(スクロールバーが表示されてる時)
わかりやすいですね。一応念のために書いておくと window が「ブラウザの表示領域」で、document が「ページ全体」です。
参考 jquery – When can $(document).width() and $(window).width() show different values? – Stack Overflow
http://stackoverflow.com/questions/8134741/when-can-document-width-and-window-width-show-different-values
さくらのVPSにputtyを使ってSSHでログインしてる時に間違えて /usr/bin/python を叩いてしまい(コピーしようとしたら貼りつけてしまった。)インタプリタを終了できなくてちょっと焦ったので終了方法のメモ。
‘Use Ctrl-D (i.e. EOF) to exit.’
とか言ってるくるけど Ctrl-D をおしてもサーバーまで届かない。
正しい終了方法は
import sys sys.exit() だそうです。 ああ、そうか sys をインポートしなきゃならんのか。プログラムを書いてる時だと気づくのにインタプリタ普段使わないから何かちがうものだと勝手に思い込んじゃってたよ…。
参考 pythonインタプリタを終了する
http://blog.justoneplanet.info/2010/08/07/python%E3%82%A4%E3%83%B3%E3%82%BF%E3%83%97%E3%83%AA%E3%82%BF%E3%82%92%E7%B5%82%E4%BA%86%E3%81%99%E3%82%8B/