WindowsXPを音声感知ボイスレコーダーとして使うで書いたSoundEngine Free【音楽編集・音声録音フリーソフト】で音声感知録音したwavファイルに再生できないものがありました。Linux - 壊れたwavファイルを修復 - Qiitaの通りにしたら再生できるようになりました。
linuxBeanのmplayerでwavファイルの修復成功
linuxBeanのSynapticパッケージマネージャの検索で「mplayer」とすると同名のパッケージがでてきますのでそれをインストールしました。
あとはLinux - 壊れたwavファイルを修復 - Qiitaの通りにコマンドを実行するだけです。
mplayer -quiet -vo null -vc dummy -ao pcm:waveheader:file="audio_FIXED.wav" audio_BROKEN.wavaudio_BROKEN.wavのところに修復したいwavファイルを書きます。
そしてコマンドを実行するとaudio_FIXED.wavという名前で修復されたwavファイルが書き出されます。
-quietは冗長なコンソール出力を抑制するオプションです。
-voはビデオ出力ドライバーの指定のオプションです。waveファイルにビデオはないのでnullを指定しています。
-vcはビデオコーデックの指定のオプションです。waveファイルにビデオはないのでdummyを指定しています。
-aoはオーディオ出力ドライバーの指定のオプションです。
コロン「:」でサブオプションを指定します。
-ao pcm:waveheader:file="audio_FIXED.wav"でpcm形式でwaveheadearを加えてaudio_FIXED.wavに出力するということになります。
mplayer -ao helpなどでそれぞれのオプションで指定できるドライバーの一覧が得られます。
MPlayer - Wikipediaを読むとmplayerはオープンソースのメディアプレーヤーでビデオも再生できるプレーヤーのようです。
mplayerのビデオからオーディオを抽出する機能を利用して壊れたwavファイルに正しいヘッダーを加えて壊れたwavファイルを修復するという仕組みのようです。
ということで壊れたどんなwavファイルも修復できるわけではなく、waveheaderが壊れたもののみの修復になりそうです。
Windowsでmplayerを使う
MPlayer - WikipediaからたどるとMPUI, the MPlayer frontend for WindowsというGUI版があるようですが、ダウンロードリストをみると2006年頃から更新されていないようですので諦めました。
(2015.6.7追記。GUIで動画をみるのが目的ならMPlayerから派生したmpv.ioがあります。動作がかなり軽いギーク向け動画プレーヤ『mpv』 - Macの手書き説明書)
MPlayer - The Movie PlayerのDownloadのBinariesのところにMPayer Windows buildsへのリンクがあります。
MPlayer on Windows (win32/win64)のBuilds selection tableからmplayerのWindows版がダウンロードできますので、Windows7 64bit用にx86_64をダウンロードしました。
MPlayer-x86_64-r37368+g52f2adc.7zという7-Zipで圧縮されたファイルがダウンロードされました。
7-ZipのインストールはLibreOffice(39)7-ZipのGUIで楽にPythonマクロをドキュメントに埋め込むでしました。
解凍してできたMPlayer-x86_64-r37368+g52f2adcフォルダを適当なところに移動させます。
今回はC:\Program Files\MPlayer-x86_64-r37368+g52f2adcに移動させました。
フォントファイルのスキャンをしないようにmplayerを設定する
コマンドラインツールなのでmplayer.exeをダブルクリックしても使えません。
壊れたwavファイルがあるフォルダからコマンドウィンドウを起動してまずmplayer.exeへのパスを通します。
path %PATH%;C:\Program Files\MPlayer-x86_64-r37368+g52f2adcこの状態でlinuxBeanと同じコマンドを打ったところなぜかフォントフォルダ内のフォントファイルのScanningが延々と続くのでCtrl+Cで強制終了させました。
[UPDATED] How to disable Font Cache in SMPlayer (MPlayer) ? | Neuro-Trashcan
ここに解決法がありました。
インストールフォルダのmplayerフォルダにあるconfigファイルをワードパッドにドロップして開きます。
## Fontconfig fontconfig=yes font=Arialこのfontconfig=yesをfontconfig=falseに変更します。
このままでもwavファイルの修復はできましたがArialフォントがないとうエラーがでてきます。
MPlayer sherpya-r37368+g52f2adc-4.9.2 (C) 2000-2015 MPlayer Team
Cannot load bitmap font 'Arial'.
## Fontconfig fontconfig=false font_file=%WinDir%\fonts\arial\arial.ttf font=Arialこれで解決だと思ったらfont_fileオプションは知らないといわれます。
## Fontconfig fontconfig=false #font=Arialよくわからないのでもうfont=Arial自体をコメントアウトしてしまいました。
mplayer -quiet -vo null -vc dummy -ao pcm:waveheader:file="audio_FIXED.wav" audio_BROKEN.wavこれでlinuxBeanと全く同じようにaudio_BROKEN.wavを修復してaudio_FIXED.wavに出力できました。
mplayer for Windowsの使い方のまとめ
インストール:
MPlayer on Windows (win32/win64)のBuilds selection tableからWindowsのバージョンに適した7-Zip圧縮ファイルをダウンロードして解凍。
解凍してできたファイルを適当なフォルダに移動。
mplayerフォルダにあるconfigファイルのFontconfigを以下のように修正。
## Fontconfig fontconfig=false #font=Arial使い方:
コマンドウィンドウからmplayer.exeへのパスを通す(以下は一例です)。
path %PATH%;C:\Program Files\MPlayer-x86_64-r37368+g52f2adc修復したいwavファイル(audio_BROKEN.wav)を引数にしてmplayerを起動。
mplayer -quiet -vo null -vc dummy -ao pcm:waveheader:file="audio_FIXED.wav" audio_BROKEN.wavこれで修復したwavファイルがaudio_FIXED.wavという名前で出力されます。
コマンドを毎回打つのは面倒なのでバッチファイルを作りました。
cd "%~dp1" "C:\Program Files\MPlayer-x86_64-r37368+g52f2adc\mplayer" -quiet -vo null -vc null -ao pcm:waveheader:file="%~n1_FIXED%~x1" %1この内容でmplayer.batというテキストファイルを作ってそのショートカットに修復したいwavファイルをドロップすればドロップしたwavファイルと同じ場所に_FIXEDと名前がついた修復後のwavファイルができているはずです。
参考にしたサイト
Linux - 壊れたwavファイルを修復 - Qiita
mplayerを利用してwavファイルのヘッダーを作って修復します。
MPlayer - Wikipedia
mplayerの解説。
MPlayer - The Movie Player
オープンソースのメディアプレーヤー。コマンドラインツールです。
MPUI, the MPlayer frontend for Windows
mplayerのWindows GUIツールですが最近は更新されていないようです。
mpv.io
mplayerから派生したGUIの動画再生ツール。音量調整はキーで*/か90(テンキーは不可)でやります。
動作がかなり軽いギーク向け動画プレーヤ『mpv』 - Macの手書き説明書
mpvの操作方法。
[UPDATED] How to disable Font Cache in SMPlayer (MPlayer) ? | Neuro-Trashcan
フォントファイルのスキャンを止めさせる方法。
0 件のコメント:
コメントを投稿