品質テストを行うために、ビデオに損傷を与えることなく、matroskaファイルのオーディオ部分を(低ビットレートに)圧縮したいと思います。オーディオコーデックはAACで、ビデオコーデックはH264です。 Ubuntuでavconvを使用しています。 CLIを起動すると:
avconv -i input.mkv -f matroska -vcodec copy -acodec copy -ab 12k \
-strict experimental output.mkv
エラーが発生します:
[matroska @ 0x1ea79c0] Application provided invalid, non monotonically increasing dts to muxer in stream 0: -80 >= -80 av_interleaved_write_frame(): Invalid argument
.mp4ファイルを使用している場合は発生しません(結果としてCLIを使用した場合)。
完全な出力は次のとおりです。
[matroska,webm @ 0x971960] Estimating duration from bitrate, this may be inaccurate
Input #0, matroska,webm, from 'Arte-Documentaire-2013-06-07-13-35-30-269s-x264.mkv':
Duration: 00:05:00.44, start: 0.000000, bitrate: N/A
Stream #0.0(eng): Video: h264 (Main), yuv420p, 1920x1080 [PAR 1:1 DAR 16:9], 25 fps, 25 tbr, 1k tbn, 180k tbc (default)
Stream #0.1(eng): Audio: aac, 48000 Hz, stereo, s16 (default)
File 'out.mkv' already exists. Overwrite ? [y/N] y
Output #0, matroska, to 'out.mkv':
Metadata:
encoder : Lavf53.21.1
Stream #0.0(eng): Video: H264 / 0x34363248, yuv420p, 1920x1080 [PAR 1:1 DAR 16:9], q=2-31, 1k tbn, 1k tbc (default)
Stream #0.1(eng): Audio: aac, 48000 Hz, stereo, s16, 12 kb/s (default)
Stream mapping:
Stream #0:0 -> #0:0 (copy)
Stream #0:1 -> #0:1 (aac -> aac)
Press ctrl-c to stop encoding
[matroska @ 0x11e1880] Application provided invalid, non monotonically increasing dts to muxer in stream 0: -80 >= -80
av_interleaved_write_frame(): Invalid argument
何か案が?
オーディオコーデックをコピーすることはできません-acodec copy
同時に再エンコードします。
次のことを試してください。
avconv -i input.mkv -c:v copy -c:a aac -strict experimental -b:a 12k out.mkv
FFmpeg/Libavのaac
エンコーダーは、他のエンコーダーほど高品質ではないことに注意してください(例:libfdk-aac
またはlibfaac
)。
それが機能しない場合…どのバージョンのツールを使用していますか? FFmpeg/Libavについて質問するときは、常に完全なノーカットのコンソール出力を含めてください。
Ffmpegの 最新バージョン をダウンロードしても、このバグは解決しませんか?すべてのリリースで何百ものバグが修正されており、古いバージョンを使用している可能性があります。