使用 FFmpeg 将内嵌字幕文件渲染到视频上

最近有需要在即时通讯软件上传输视频文件,但是多数聊天软件在预览视频时,通常都不支持加载内嵌的字幕文件。考虑到要发给非技术型用户,能让对方直接在移动端预览,而不是跳转使用外部播放器会更方便一下。

一番搜索下来发现官方文档里给出了这种场景下的案例:

ffmpeg -i input.mkv -filter_complex "[0:v][0:s]overlay[v]" -map "[v]" -map 0:a <output options> output.mkv

这里稍加修改,然后加上硬件编解码来加速重编码:

.\ffmpeg-6.1.1-full_build-shared\bin\ffmpeg.exe -hwaccel cuda -i <input-video-path> -filter_complex "[0:v][0:s]overlay[v]" -map "[v]" -map 0:a -c:v hevc_nvenc -preset slow -profile:v main10 -pix_fmt p010le <output-video-path>

引用

HowToBurnSubtitlesIntoVideo – FFmpeg

cuda – Understanding pixel format and profile when encoding 10-bit video in ffmpeg with nvenc – Super User

video – How to use GPU to accelerate the processing speed of ffmpeg filter? – Stack Overflow

Filter complex through CUDA hevc_cuvid with FFMPEG input 4k hevc, help needed – Graphics / Linux / Linux – NVIDIA Developer Forums

GPU-accelerated video processing with ffmpeg – Stack Overflow

audio – FFmpeg error when using –filter-complex with nvenc codec “Filter amerge has an unconnected output” – Super User

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注