2017-07-03 3 views
0

トランスコードされた出力ファイルのサイズを特定のサイズに保つためのベストプラクティスはありますか?Fluent-ffmpegサウンドを失うことなく出力ファイルのサイズを縮小する方法

私はそれを< 100 MBの下に保つ必要がありますが、何とか私は大きな出力ファイルで終わります。 問題は、私の(テスト)ビデオファイルが600kbであり、生成されたoutput.wavが4MBであることです。 私が期待していたところからかなり離れています。

var proc = new ffmpeg({ 
     source: file, 
     nolog: false 
    }); 
    proc.addInputOption('-acodec libopus'); 

    format = "wav"; 

    proc.addOptions([ 
     '-f ' + format, 
     '-ab 192000', 
     '-ar 16000', 
     '-vn' 
    ]); 

これは、私がffmpegライブラリにパラメータを与えた方法です。 サイズを小さくして最大サイズを維持するには、ここでどのパラメータを変更する必要がありますか?品質?

+1

なぜあなたはWAVファイルに出力していますか?これは未圧縮のRaw PCMオーディオを使用します。そのため、そのような大きな出力ファイルが得られるのです。再エンコードしたくない場合(つまり品質を損なわない場合)、オーディオストリームをそのままコピーして別の '.opus'ファイルに書き込むことはできませんか? – slhck

+1

さらに、コマンドラインでこれらのコマンドを最初に試してみることをお勧めします - それで、ffmpegが何をしているのか、どのコーデックを選択しているのか、実際のビットレートは何かなどは明らかです。正しいコマンドが何であるかをfluent-ffmpegに変換します。 ffmpegのコマンドラインに関する質問については、それを実装するライブラリよりも助けになるでしょう。 (問題がライブラリそのものについてのものでない限り、明らかに。 – slhck

+0

@slchk、私は特定の拡張子を持つように制限されています。 flac、wav、audio/webm audio/webm; codecs = opus、audio/webm;コーデック= vorbis。 私は他の出力形式を試しましたが、とにかく結果は大きく、とにかくwavファイルほどです。 ffmpeg -acodec libopus -i 2.webm -vn output1x.flac小さなファイルで終わるためにここで指定する必要があるものは何ですか? – shamaleyte

答えて

1

出力フォーマットとしてWAVを使用すると、ffmpegは非圧縮PCMオーディオを選択します。ここで、ビットレート設定は無効です。

ffmpeg -i input.webm -vn -c:a copy output.opus 

:ビットストリーム(-c:a copy)を触れることなくWhat is a Codec (e.g. DivX?), and how does it differ from a File Format (e.g. MPG)?

コマンドラインを使用していた場合は、あなただけの出力ファイルにオーディオストリームをコピーする必要があると思います:あなたはこの記事を読むことをお勧めします出力形式として

ffmpeg('input.webm') 
    .addInputOption('-acodec libopus') 
    .noVideo() 
    .audioCodec('copy') 
    .output('output.opus') 

することもできますwebmoutput.webmに書き込むことによって:流暢-ffmpegので、私はこれが移動するための方法であると思います。

+0

それだけです!あなたの時間に感謝@ slchk! – shamaleyte

+0

@slchk、返信をありがとう。しかし、生成されたopusファイルは、再生すると常に4または5秒目から開始されます。それは最初の秒が失われているようです。それがどうして起こるのか? この問題について私が作成した新しい質問を確認してください。 https://stackoverflow.com/questions/45063388/transcode-to-opus-by-fluent-ffmpeg-or-ffmpeg-from-commandline – shamaleyte

関連する問題