オーディオコーデックを変更したいが、ffmpegでビデオ設定を維持したい


26

オーディオコーデックをAAC 320 kbps / 44.100 kHzに変換したいビデオがあります。すべてのビデオ設定とコーデックが同じままで、オーディオコーデックと設定のみが変更されるように、ffmpegスイッチに何を使用しますか?

これが私のビデオです。

$ ffmpeg -i Winnipeg.rb\ Scala-Talk.mov 
FFmpeg version SVN-r25375, Copyright (c) 2000-2010 the FFmpeg developers
  built on Oct  6 2010 13:02:41 with gcc 4.2.1 (Apple Inc. build 5664)
  configuration: --enable-libmp3lame --enable-shared --disable-mmx --arch=x86_64
  libavutil     50.32. 2 / 50.32. 2
  libavcore      0. 9. 1 /  0. 9. 1
  libavcodec    52.92. 0 / 52.92. 0
  libavformat   52.80. 0 / 52.80. 0
  libavdevice   52. 2. 2 / 52. 2. 2
  libavfilter    1.48. 0 /  1.48. 0
  libswscale     0.12. 0 /  0.12. 0

Seems stream 0 codec frame rate differs from container frame rate: 2000.00 (2000/1) -> 10.00 (10/1)
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'Winnipeg.rb Scala-Talk.mov':
  Metadata:
    major_brand     : qt  
    minor_version   : 537199360
    compatible_brands: qt  
  Duration: 01:10:53.00, start: 0.000000, bitrate: 283 kb/s
    Stream #0.0(eng): Video: h264, yuv420p, 800x598, 94 kb/s, 10 fps, 10 tbr, 1k tbn, 2k tbc
    Stream #0.1(eng): Audio: adpcm_ima_qt, 22050 Hz, 1 channels, s16
    Stream #0.2(eng): Audio: adpcm_ima_qt, 22050 Hz, 1 channels, s16
At least one output file must be specified

事前に感謝します!ffmpegで私が理解したことがないことの1つは、変更したくないものの小さな設定をすべて逆流することなく、ファイルを「微調整」する方法です。


オーディオ(およびビデオ)の品質はかなり低いようです。形式を変更したり、サンプリングレートを増やしたり、ビットレートを増やしたりして、実際にオーディオの品質を上げることはありません。
強制フロー

回答:


34

両方のおかげで、私にとっては有効なEhsanの回答とfletomのコメントの集約。

ffmpeg -i input.avi -acodec mp3 -vcodec copy out.avi

私はいつもこの-vcodec copy部分を忘れているので、自己参照のために
イゴルシ

2
答えを少し広げて説明してもらえますか?ありがとう。
fixer1234

2
-i input.avi変換するファイルを指定します。out.avi変換されたファイルです。-acodec mp3出力ファイルへの書き込み中にオーディオストリームをmp3に変換するように指示します。vcodec copyビデオストリームを変更せずに出力ファイルにコピーするだけです。
Wodin 16

8

投稿でffmpegコマンドが少し文字化けしていたため、あなたが何をしているかを判断するのは難しいです。

オーディオトラックを置き換えるには:

ffmpeg -i test.avi -i normalized.mp3 -map 0:0 -map 1:0 -vcodec copy -acodec copy new_test.avi

上記のパラメーターの詳細については、FFmpeg Documentationを参照してください


1
ありがとう。これで私の問題が解決しました。実行するとffmpeg -i old.mkv -i onlySound.m4a out.mkv、操作に時間がかかります。なぜそんなにスーですか?
ゼータ調査官

6

オーディオおよび/またはビデオコーデックを変更する場合は、次のようなパラメーターとして追加するだけです。

オーディオコーデックをmp3に変更するだけです(元のコーデックが何であれ)

ffmpeg -i input.avi -acodec mp3 out.avi

ビデオコーデックをh264に変更するだけです

ffmpeg -i input.avi -vcodec h264 out.avi

ffmpegは新しいコーデックのエンコードをサポートする必要があることに注意してください。/programming/3377300/what-are-all-codecs-supported-by-ffmpegを参照してください


5
これでうまくいきましたが-vcodec copy、ビデオをh.264にトランスコードしようとするのを防ぐために追加する必要がありました。Dunnoがデフォルトでそれを行った理由。
fletom

-1

ビデオを保持し、オーディオを変更できるHandbrakeを使用してみてください。FFmpegのGUIであり、魅力のように機能します。


3
HandBrakeは実際にこれを行うことはできません。オーディオまたは字幕ストリームの簡単なコピーを実行できますが、常にビデオを再エンコードします。
evilsoup
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.