ざ~ちゃんブログ

プログラマーです。 富山県の旧細入村でリモートワークしてます。 プログラミングとPerfumeと動画制作が大好きです。

2014年04月

HandBrakeで動画が変換できない場合の対処(Mac・Win)

前の記事でも書いたとおり、動画の変換にはフリーソフトの「HandBrake」がすごい便利です。ただ長年使ってると、なぜか「変換開始」ボタン押しても変換処理が始まらず、何も出来なくなってしまうことがあります。

原因として、HandBrakeの設定ファイルが壊れてしまってる可能性があります。その場合、HandBrake自体を再インストールしても解決しないのが厄介なところです。以下の手順で直りますのでお試しを!

※2014.07.25追記:今までMac版のフォルダ操作方法しか書いてなかったので、Windows版の操作方法を追記しました。ただ、僕はWin版のHandBrakeは普段使っていないので、これで動画変換エラーが直ることは確認できてません。これ見てWin版で試された方、コメントもらえると嬉しいです。

■Macの場合
1.HandBrakeを終了する
2.Finderで「移動」メニューを選択した状態で、キーボードの「Option」を押す
3.通常はメニュー項目にない「ライブラリ」が出現するので、それを選択
4.ホームフォルダ内の「ライブラリ」フォルダが開くので「Application Support」を開く
5.「HandBrake」というフォルダがあるので、デスクトップなど別の場所に移動
6.HandBrakeを起動する

■Windowsの場合
1.HandBrakeを終了する
2.マイドキュメントなど適当なフォルダを開き、アドレスバーに「%appdata%」と入力
3.OSバージョンに応じたAppDataフォルダが開く
4.「HandBrake」というフォルダがあるので、デスクトップなど別の場所に移動
5.HandBrakeを起動する

これでHandBrakeの設定ファイルがリセットできました。HandBrakeを再起動すると、自動的に「ライブラリ」or「%appdata%」内の「HandBrake」フォルダが再作成され、動画変換に成功するようになると思います。

独自のプリセットを作成している場合はプリセットが消えてしまいます。プリセットを戻したいときは以下の手順で。僕が試した限り、プリセットを復活させても変換はちゃんと成功しました。

■Macの場合
1.HandBrakeを終了する
2.「ライブラリ」内の「HandBrake」フォルダと、上記5で退避した「HandBrake」フォルダを同時に開く
3.退避したフォルダ内の「UserPresets.plist」ファイルを「ライブラリ」内の「HandBrake」フォルダに上書きコピー
4.HandBrakeを起動する

■Windowsの場合
1.HandBrakeを終了する
2.「%appdata%」内の「HandBrake」フォルダと、上記4で退避した「HandBrake」フォルダを同時に開く
3.退避したフォルダ内の「user_presets.xml」ファイルを「%appdata%」内の「HandBrake」フォルダに上書きコピー
4.HandBrakeを起動する

退避した「HandBrake」フォルダは、これで特に必要なくなったので削除してもOKです。

実は2年前くらいにこれでハマって、そのときはMacに新しいアカウント作ってHandBrake使ったら成功したんですよ(笑) それ以来HandBrake使う機会無くて放置してました。んでさっき前の記事を書こうとしてHandBrake使ったらやっぱ使えなくて、冷静に考えてみるとライブラリをリセットすればOKだよなぁと思って試してみた次第でございます。本当はどこがどう壊れてるのか分かればいいんですけど、まぁ直ったから良し。

ちなみに変換に失敗したときは、画面にこんなログが表示されました。最後にそれ貼り付けときますね。

・2年前DVDをリッピングしようとした時のログ(合法的なリッピングなんで通報しないでねw)
HandBrake Activity Log for /Users/hoge/Desktop/movieFile.m4v: 2012-11-21 01:12:26 +0900
Handbrake Version: 0.9.3-jp-b1 (2009021200)

[01:12:26] macgui: Rip: Pending queue count is 1
[01:12:26] macgui: scanning specifically for title: 1
[01:12:26] macgui: performNewQueueScan currentQueueEncodeIndex is: 0
[01:12:26] hb_scan: path=/Users/hoge/Desktop/DVD/VIDEO_TS, title_index=1
[01:12:26] scan: trying to open with libdvdread
[01:12:26] scan: DVD has 1 title(s)
[01:12:26] scan: scanning title 1
[01:12:26] scan: opening IFO for VTS 1
[01:12:26] pgc_id: 1, pgn: 1: pgc: 0x2691bc0
[01:12:26] scan: vts=1, ttn=1, cells=0->24, blocks=0->892076, 892077 blocks
[01:12:26] scan: duration is 00:29:59 (1799310 ms)
[01:12:26] scan: checking audio 1
[01:12:26] scan: id=80bd, lang=English (AC3), 3cc=eng ext=0
[01:12:26] scan: title 1 has 1 chapters
[01:12:26] scan: chap 1 c=0->24, b=0->892076 (892077), 1799310 ms
[01:12:26] scan: aspect = 0
[01:12:26] scan: decoding previews for title 1

*** libdvdread: CHECK_VALUE failed in nav_read.c:207 ***
*** for dsi->dsi_gi.zero1 == 0 ***

[01:12:26] scan: audio 0x80bd: AC-3, rate=48000Hz, bitrate=256000 English (AC3) (2.0 ch)

*** libdvdread: CHECK_VALUE failed in nav_read.c:207 ***
*** for dsi->dsi_gi.zero1 == 0 ***


*** libdvdread: CHECK_VALUE failed in nav_read.c:207 ***
*** for dsi->dsi_gi.zero1 == 0 ***


*** libdvdread: CHECK_VALUE failed in nav_read.c:207 ***
*** for dsi->dsi_gi.zero1 == 0 ***


*** libdvdread: CHECK_VALUE failed in nav_read.c:207 ***
*** for dsi->dsi_gi.zero1 == 0 ***


*** libdvdread: CHECK_VALUE failed in nav_read.c:207 ***
*** for dsi->dsi_gi.zero1 == 0 ***


*** libdvdread: CHECK_VALUE failed in nav_read.c:207 ***
*** for dsi->dsi_gi.zero1 == 0 ***


*** libdvdread: CHECK_VALUE failed in nav_read.c:207 ***
*** for dsi->dsi_gi.zero1 == 0 ***


*** libdvdread: CHECK_VALUE failed in nav_read.c:207 ***
*** for dsi->dsi_gi.zero1 == 0 ***


*** libdvdread: CHECK_VALUE failed in nav_read.c:207 ***
*** for dsi->dsi_gi.zero1 == 0 ***

[01:12:26] scan: 10 previews, 720x480, 29.970 fps, autocrop = 50/52/0/0, aspect 4:3, PAR 8:9
[01:12:26] scan: title (0) job->width:656, job->height:384
[01:12:26] libhb: scan thread found 1 valid title(s)

・今日、フルHD動画をカーナビで見れるサイズに変換しようとした時のログ
HandBrake Activity Log for /Users/hoge/Desktop/movieFile.m4v: 2014-04-29 11:53:16 +0900
Handbrake Version: 0.9.3-jp-b1 (2009021200)

[11:53:16] macgui: Rip: Pending queue count is 1
[11:53:16] macgui: scanning specifically for title: 1
[11:53:16] macgui: performNewQueueScan currentQueueEncodeIndex is: 0
[11:53:16] hb_scan: path=/Volumes/SDcard/movieFile.mp4, title_index=1
[11:53:16] scan: trying to open with libdvdread
[11:53:16] dvd: not a dvd - trying as a stream/file instead
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/Volumes/SDcard/movieFile.mp4':
Duration: 00:25:05.15, start: 0.000000, bitrate: 3816 kb/s
Stream #0.0(eng): Video: h264, yuv420p, 1280x720, 29.97 tb(r)
Stream #0.1(eng): Audio: aac, 48000 Hz, stereo, s16
[11:53:16] scan: decoding previews for title 1
[11:53:16] scan: 10 previews, 1280x720, 29.970 fps, autocrop = 0/0/0/0, aspect 16:9, PAR 1:1
[11:53:16] scan: title (0) job->width:1280, job->height:720
[11:53:16] libhb: scan thread found 1 valid title(s)

両方変換には失敗してるんですけど、内容はけっこう違いますねぇ。意味は分からないですが、一応参考までに貼っときました。

ではでは〜。



日産純正ナビ「MP313D-A」で再生できる動画の作り方

今年の1月にX-TRAIL(旧モデル)を新車で購入しまして、純正ナビ「MP313D-A」を付けました。動画を見るにはiPod繋げば良いんですけど、せっかくSDカードでも動画再生できるので、SDカードで再生するための動画の変換方法を調べてみました。

製品マニュアル10.オーディオ基本操作のK-5ページに対応フォーマットが載ってるんですが、実際に作ってみると意外とめんどくさかった。以下に手順まとめましたので、動画に詳しくない人もこの通りにやればできると思います!

前提として、ナビで見たい動画ファイルがパソコンに保存されてるものとします。

まず動画変換ソフト「HandBrake」をダウンロードしてインストールしておきます。
http://sourceforge.jp/projects/handbrake-jp/
このソフトはMac・Win版両方あります。僕はMacでしか試してないですが、たぶん同じようにやればWin版でもできるはず。出来なかったらごめんなさい・・・

1.HandBrakeを起動すると、さっそく変換元の動画ファイルを聞いてくるので選択する。一度選択した後に選び直すときは、左上の「変換元」ボタンを押す
2.「保存先」の「ブラウズ」ボタンを押して、変換後の動画を保存する場所を指定
3.「形式」は「MP4 file」を選択
4.「画質」タブを選択
5.「動画コーデック」は「MPEG-4(FFmpeg)」を選択
6.「フレームレート」は「変換元と同一」を選択
7.「品質」は「平均ビットレート(kbps)」を選択し「2500」と入力
8.「画像設定」ボタンをクリック
9.「ワイド化」は「None」を選択
10.「アスペクト比を保つ」にチェックを入れる
11.「幅」は「400」まで落とす。自動的に「高さ」は「224」になる(16:9のワイド動画の場合)
12.「閉じる」ボタンで閉じる
13.「音声&字幕」タブを選択
14.「サンプルレート」を「Auto」から「48」に変更、他はデフォルトのまま
15.左上の「変換開始」ボタンをクリックして、しばらく待つ
16.変換が終わったらHandBrakeを閉じて、変換後のファイルをSDカードにコピー

これでSDカードをナビに挿入すれば、動画が再生できるはずです!
注意点などいくつか。
・姉妹モデル「MP313D-W」でもたぶんこの手順で出来ます
・USBメモリでの動画再生もたぶんこの手順で出来ます
・Macだと、SDカードの中に「._動画ファイル.m4v」みたいな隠しファイルが自動的にできてしまい、ナビからも見えてしまいます。Eject for Windowsってフリーソフト使うと隠しファイル自動削除できるので便利です。
・マニュアルによるとH.264フォーマットも対応しているようですが、HandBrakeの動画コーデックで「H.264」を選択してもナビでは再生できませんでした。「MPEG-4」を選びましょう
・4:3の動画だと、サイズは「幅400、高さ224」ではなく「幅320、高さ240」のサイズが良いと思いますが、試してないです
・音声の「サンプルレート」が「Auto」になっていると、動画の途中で音のスピードが速くなったり遅くなったりして、映像と音がずれてしまうことがあるので注意です。昔それで大失敗しました。
・マニュアルでは「ビットレートの上限が MPEG4では2.5Mbps」とあります。上記7で設定したのは「平均ビットレート」なので、動画の途中で2.5Mbps以上になってしまう可能性もあります。もし「2500」で再生できなかったら「2300」とか「2000」とかに落としてみると良いかもです
・どうしてもうまくいかなかったのが、この動画の早回しの着替えシーン。この着替えシーンにさしかかると、着替え終わった後まで映像が飛んじゃうんですよね。たぶん早回ししてるのが原因だとは思うんだけど、ビットレート大幅に下げてみてもダメだったし、謎です・・・

結論!面倒だし画質悪いしどうしても再生できない部分あるし、SDカードで動画は見ない方が良い(爆)

プロフィールの写真がまだジムニーのままだな。早くエクストレイルに変えないと(^o^)変えました!
ではでは〜。