回答受付が終了しました

ffmpegでisoファイルをmp4に変換した時に音声が出力されません。どうすれば良いのでしょうか。 ffmpeg -i test.iso test.mp4

画像

回答(2件)

変換後のmp4ファイルが破損している可能性がありますね。 4DDiG File Repairなどのファイル修復ツールで変換後のmp4ファイルをスキャンしてみてください。 ▼4DDiG File Repair https://4ddig.tenorshare.com/jp/file-repair.html?linksource=header

この回答はいかがでしたか? リアクションしてみよう

ID非公開

2024/4/5 20:26

DVD Discのisoイメージファイルをmp4に変換する時、音声が出力されないという事ですね。 ストリーミングの変換にはコツがあるようです。 [現状] ffmpeg -i test.iso test.mp4 [改良案] ffmpeg -analyzeduration 120M -probesize 120M -i test.iso test.mp4 [説明」 DVDのisoイメージファイルの実体は、Video_TSフォルダーに格納された多数のVOBファイルの集合体です。動画再生ではこれらを順番に読み出して行くのですが(これがストリーミング再生)、ffmpegでの作業も同様にこれらを次々に読み込んで変換します。しかしスタートからしばらく音声が無かった場合などに(映像のスタートは0.500500秒)ファイル情報の解析に失敗して Audioの部分が"0 channels"となります。 そこで情報が得られると思われる十分な時間を設定してファイルを読ませてみます。 デフォルトでは5秒に設定されているようです。 この改良案では120秒と思いっきり長くしていますので、長すぎるとお思いならば60M(60秒)などと少なくしてみて下さい。 当然ですがffmpegのコマンドをスタートすると少なくとも120秒間はじっと待つことになります。 なお、-analyzeduration と -probesizeのオプションは -iオプションよりも前に指定してください。 [参考] ・ffmpegのオプション -analyzeduration と -probesize http://fftest33.blog.fc2.com/blog-entry-109.html ffmpegの動画の解析時間やサイズを設定するオプションの話。 通常の動画は動画の先頭を読むだけで動画再生に必要な情報が得られるのですが、ストリーミングの場合は読み始めた先頭に必要な情報があるとは限りません。これはストリーミングをファイル化した場合も同様です。 またストリーミングの途中で動画のサイズが変更されたり、音声ストリームが追加されるような場合、事前にその情報を得るにはその位置まで読み込んで解析しなければなりません。 ffmpegはデフォルトの状態では先頭から5秒間、ストリームの容量で5MBしか解析を行いません。 それを拡張するオプションが -analyzeduration と -probesize。 ・よく使うffmpegのコマンドメモ https://ameblo.jp/foreheadlarge-s/entry-12130235914.html -analyzeduration 30M -probesize 30M エンコードの前処理として行われる先読みの秒数指定。デフォルトでは5M(5秒)。30Mは30秒。 映像か音声のどちらかが5秒以上遅延した動画ファイルの場合、このオプションで秒数を増やさないと、映像がない動画ファイル・音声がない動画ファイルに仕上がる場合がある。 ・ffmpeg DVDから抽出したVOBファイルをmp4に変換する https://wiki.yo-net.jp/index.php?title=%E2%A7%85ffmpeg_DVD%E3%81%8B%E3%82%89%E6%8A%BD%E5%87%BA%E3%81%97%E3%81%9FVOB%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%82%92mp4%E3%81%AB%E5%A4%89%E6%8F%9B%E3%81%99%E3%82%8B -probesize 120M: -analyzeduration 120M:解析時間(MegaMicroSecond) 120Mなら120秒。