VLCでは再生できるけどエンコードに失敗する動画があってffmpegで音声だけaacに分離してwavに変換しようとしたが失敗した。
以前しばらく調べても方法がわからなかったけどclaudeに聞いたら教えてくれたのでメモっておく。
実行ファイルや対象ファイルは適宜環境に合わせて
"C:\Program Files\VideoLAN\VLC\vlc.exe" input.m4a --sout="#transcode{acodec=s16l,channels=2,samplerate=44100}:std{access=file,mux=wav,dst=output.wav}" vlc://quit
追記
音声だけ抜きだすと音ズレが発生してしまうので動画全体をVLCでエンコード→それをHandbrakeで再エンコで変換できた。何故かVLCエンコード→Aviutlで再エンコだと音ズレができる。
"C:\Program Files\VideoLAN\VLC\vlc.exe" input.mkv --sout="#transcode{vcodec=h264,venc=x264{crf=18},deinterlace,acodec=mp4a,ab=256,channels=2,samplerate=48000}:std{access=file,mux=mp4,dst=D:\dvd\tmp\output_vlc.mp4}" vlc://quit
謎なのはVLCのこのコマンドは数回に一回しか成功しない。失敗したときはエンコされずにすぐにウィンドウが閉じる。同一のコマンドを即座に履歴から呼び出すと成功したりする。なんで?
更に追記
音声だけだと失敗してたのはサンプルレートの設定を間違えてたのが原因っぽい