よく使われるのがリアルタイムの-reであるが、それだと1倍速にしかならないので音声の PTS を加工して速度を調整する。
本来のダウンロード速度は制限前より高速であることが前提である。倍速の逆数にasetpts
フィルタで変更しarealtime
フィルタでリアルタイム処理にする。
1.1倍速の例
ffmpeg -i "https://example.com/hls/playlist.m3u8" -c copy output.ts -af asetpts=10*PTS/11,arealtime -vn -f null -
1.5倍速の例
ffmpeg -i "https://example.com/hls/playlist.m3u8" -c copy output.ts -af asetpts=2*PTS/3,arealtime -vn -f null -
2倍速の例
ffmpeg -i "https://example.com/hls/playlist.m3u8" -c copy output.ts -af asetpts=PTS/2,arealtime -vn -f null -
2021年7月17日以降のバージョンでは-readrateが追加され、任意の倍率に制限できるようになった。-readrate 1は-reと同じ効果。
2倍速の例
ffmpeg -readrate 2 -i "https://example.com/hls/playlist.m3u8" -c copy output.ts
ffmpeg: add option readrate · FFmpeg/FFmpeg@c320b78