0

レガシー デバイスの字幕をハードコードする必要があるビデオがあるので、通常はこれに ffmpeg を使用します。正常に動作しますが、非常に遅いです。

これは私が通常使用するコマンドです。

ffmpeg -i test-cut.mp4 -vf "subtitles=test-cut.srt" -c:v libx264 -crf 24 -vsync passthrough -c:a copy test.ffmpeg.mp4

先日handbrakeCLIを試してみたところ、同じファイルではるかに高速でした。

このHandbrakeCLIコマンドを使用して変換とハードコードを行いました。好きではないことはわかっていますが、オーディオを変換せず、字幕が必要なフレームでビデオを変換するだけでよいため、ffmpegの方が高速であると期待できます。

HandBrakeCLI --preset "Very Fast 1080p30" --format av_mp4 -i test-cut.mp4 --srt-file test-cut.srt --srt-burn=1 -o test.handbrake.mp4

サブが必要なビデオにサブをインプリントするだけでffmpegを使用できる方法はありますか。ビデオ全体を変換する必要はありません。

たとえば、1 分間のビデオがあり、30 秒で 1 つの文があり、その文/サブを 5 秒間表示して、ffmpeg でその 5 秒のセグメントのみを変換し、残りのビデオをコピーする必要がある場合新しい出力へのオーディオ?

入力ビデオは 24 FPS の 720p で、速度の違いは通常、ハンドブレーキが 2 倍、ffmpeg がビデオの長さの約 0.7 倍です。ハンドブレーキに 1080p プロファイルを使用していることは知っています。どちらも同じマシンと同じビデオでテストされました。

バージョン ffmpeg バージョン 4.2.2 HandBrake 1.3.1

動画情報 オリジナル動画

CONTAINER......: MPEG-4
SIZE...........: 13.3 MiB
RUNTIME........: 45 s 94 ms
VIDEO CODEC....: avc1, High@L3.1, 8 bits
RESOLUTION.....: 1280x720
BITRATE........: 2 402 kb/s
FRAMERATE......: 24.000 FPS
AUDIO..........: AAC, 2 channels, 66.2 kb/s

ハンドブレーキ出力

CONTAINER......: MPEG-4
SIZE...........: 2.81 MiB
RUNTIME........: 45 s 51 ms
VIDEO CODEC....: x264, avc1, Main@L4, 8 bits
RESOLUTION.....: 1118x692
BITRATE........: 355 kb/s
FRAMERATE......: 24.000 FPS
AUDIO..........: AAC, 2 channels, 160 kb/s

ffmpeg 出力

CONTAINER......: MPEG-4
SIZE...........: 3.90 MiB
RUNTIME........: 45 s 94 ms
VIDEO CODEC....: x264, avc1, High@L3.1, 8 bits
RESOLUTION.....: 1280x720
BITRATE........: 651 kb/s
FRAMERATE......: 23.976 (23976/1000) FPS
AUDIO..........: AAC, 2 channels, 66.2 kb/s

ハードコーディングされたサブシステムで ffmpeg を高速化するための提案を誰かが提供できればありがたいです。

4

1 に答える 1