web-dev-qa-db-ja.com

オーディオストリームでエラーを与えるavconv

Mkvファイルをaviに変換しようとしています:

 avconv -i 1.mkv ./converted/1.avi

この出力の取得:

avconv version 0.8.1-4:0.8.1-0ubuntu1, Copyright (c) 2000-2011 the Libav developers
  built on Mar 22 2012 05:29:10 with gcc 4.6.3
[matroska,webm @ 0x8ba3aa0] Estimating duration from bitrate, this may be inaccurate
Input #0, matroska,webm, from '1.mkv':
  Metadata:
    TITLE           : 
    ARTIST          : 
    COMPOSER        : 
    SYNOPSIS        : 
    DATE_RELEASED   : 
    GENRE           : 
  Duration: 00:07:48.54, start: 0.000000, bitrate: N/A
    Stream #0.0(eng): Video: h264 (Main), yuv420p, 1910x800 [PAR 1:1 DAR 191:80], 24 fps, 24 tbr, 1k tbn, 180k tbc (default)
    Stream #0.1: Audio: aac, 44100 Hz, stereo, s16 (default)
[buffer @ 0x8dcd160] w:1910 h:800 pixfmt:yuv420p
Incompatible sample format 's16' for codec 'ac3', auto-selecting format 'flt'
[ac3 @ 0x8f24540] invalid bit rate
Output #0, avi, to './converted/1.avi':
  Metadata:
    TITLE           : 
    ARTIST          : 
    COMPOSER        : 
    SYNOPSIS        : 
    DATE_RELEASED   : 
    GENRE           : 
    Stream #0.0(eng): Video: mpeg4, yuv420p, 1910x800 [PAR 1:1 DAR 191:80], q=2-31, 200 kb/s, 90k tbn, 24 tbc (default)
    Stream #0.1: Audio: ac3, 44100 Hz, stereo, flt, 200 kb/s (default)
Stream mapping:
  Stream #0:0 -> #0:0 (h264 -> mpeg4)
  Stream #0:1 -> #0:1 (aac -> ac3)
Error while opening encoder for output stream #0:1 - maybe incorrect parameters such as bit_rate, rate, width or height

グーグルは何も出てこなかった。

4
sennett

まず、ac3ではなく別のエンコーダーを使用してみてください。コマンドを使用すると、基本的にavconvにすべてを独自に決定させることになります。これはバグかもしれませんが(FFmpegで動作する場合はレポートを提出してください)、エンコーダーを指定することでおそらく回避できます— libavにリンクしている場合はMP3をお勧めします:

avconv -i 1.mkv -c:a libmp3lame ./converted/1.avi

エラーの兆候は次のとおりです。

コーデック「ac3」の互換性のないサンプル形式「s16」

AC3を強制し、-b:aのようなパラメータを指定してみてください。

avconv -i 1.mkv -c:a ac3 ./converted/1.avi

(おそらく高品質の)h.264ストリームをプレーンなMPEG-4に変換するのではなく、ビデオストリームにも適切なオプションを使用することもできます。そうしないと、変換の結果が悪く見えると確信しています。

3
slhck