最近有需要在即时通讯软件上传输视频文件,但是多数聊天软件在预览视频时,通常都不支持加载内嵌的字幕文件。考虑到要发给非技术型用户,能让对方直接在移动端预览,而不是跳转使用外部播放器会更方便一下。
一番搜索下来发现官方文档里给出了这种场景下的案例:
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
video – How to use GPU to accelerate the processing speed of ffmpeg filter? – Stack Overflow
GPU-accelerated video processing with ffmpeg – Stack Overflow