网上各种格式转换,转码工具,乱七八糟,最终都是使用ffmpeg,
首先从ffmpeg官网下载,安装设置好ffmpeg,使用以下命令,在视频所在文件夹打开windows终端,
解释命令:
- -hwaccel cuvid -c:v h264_cuvid:使用 CUDA 加速来解码 111.mkv 中的视频流。
- -i 111.mkv:指定输入文件为 111.mkv。
- -i logo.png:指定输入的水印文件为 logo.png。
- -filter_complex "[0:v]scale=-2:720,subtitles=111.srt[v];[v][1:v]overlay=W-w-10:H-h-10[v_watermark]":[0:v]scale=-2:720:将视频流 0:v(即 111.mkv 的视频流)调整为宽度最大为720像素,高度按比例缩放。
- subtitles=111.srt[v]:将字幕 111.srt 应用到视频流 0:v 上,并将处理后的视频流输出为 [v]。
- [v][1:v]overlay=W-w-10:H-h-10[v_watermark]:将 logo.png 叠加在处理后的视频流 [v] 的右下角。
- -map "[v_watermark]":选择带有水印的视频流作为输出。
- -map 0:a:选择输入文件 111.mkv 的音频流。
- -c:v h264_nvenc -profile:v main -preset fast -g 60:-c:v h264_nvenc:使用 NVIDIA 的 NVENC 加速来进行视频编码。
- -profile:v main:选择 H.264 的主要配置文件。
- -preset fast:选择 NVENC 的预设,fast 表示快速编码。
- -g 60:设置关键帧间隔为 60 帧。
- -c:a aac -strict -2:使用 AAC 编码音频流。
- -f hls -hls_time 6 -hls_playlist_type vod:-f hls:指定输出格式为 HLS。
- -hls_time 6:设置每个分片的时长为 6 秒。
- -hls_playlist_type vod:指定 HLS 播放列表类型为视频点播。
- 111_stream.m3u8:指定输出的 HLS 流文件名为 111_stream.m3u8。
这条命令将会将 111.mkv 转换为适合网络播放的 .m3u8 格式,并在视频右下角添加了 logo.png 水印,同时应用了 111.srt 的字幕文件。
ffmpeg -i 111.mkv -i logo.png -i 111.srt -filter_complex "[0:v]scale=-2:720,subtitles=111.srt[v];[v][1:v]overlay=W-w-10:H-h-100[v_watermark];[v_watermark][2:s]overlay[v_with_subtitles]" -map "[v_with_subtitles]" -map 0:a -c:v libx264 -crf 23 -preset veryfast -g 60 -c:a aac -strict -2 -f hls -hls_time 6 -hls_playlist_type vod 111_stream.m3u8