#合并加密的M3U8 TS视频文件为MP4格式,-c copy参数表示复制原始的视频和音频流,不进行转码。这样可以节省时间,并保留原始视频的质量。 ffmpeg -i index.m3u8 -c copy output.mp4 #静音输出 anull 过滤器会创建一个全零的音频流,相当于完全静音.或者直接丢弃音频流:ffmpeg -i input.mp4 -c:v copy -an output.mp4 ffmpeg -i input.mp4 -c:v copy -af anull output.mp4 #加速视频 0.5*PTS 表示每个输出帧的时间戳为原时间戳的一半,因此播放速度加快一倍。 ffmpeg -i input.mp4 -filter:v "setpts=0.5*PTS" -c:a copy output.mp4 #减速视频 2.0*PTS 表示每个输出帧的时间戳为原时间戳的两倍,因此播放速度减慢一半。 ffmpeg -i input.mp4 -filter:v "setpts=2.0*PTS" -c:a copy output.mp4 #跳过初始几秒 -ss N 指定从第 N 秒开始截取视频,而 setpts=PTS-STARTPTS 会重置时间戳,使得视频从 0 秒开始播放。 ffmpeg -i input.mp4 -filter:v "setpts=PTS-STARTPTS" -ss N -c:a copy output.mp4 #保持音频同步 当使用 setpts 过滤器改变视频帧的时间戳时,通常需要确保音频同步。为此,可以同时应用 atempo 过滤器调整音频播放速度 ffmpeg -i input.mp4 -filter:v "setpts=0.5*PTS" -filter:a "atempo=2.0" output.mp4 -----------------------------------------------------------------------------【格式转换】 #转为H.265编码格式,并保留原有的音频编码不变 ffmpeg -i input.mp4 -c:v libx265 -crf 23 -preset medium -c:a copy output.mkv 常见的视频编码器包括: libx264: H.264/AVC 编码器。 libx265: H.265/HEVC 编码器。 libvpx: VP8 编码器。 libvpx-vp9: VP9 编码器。 libaom-av1: AV1 编码器。 mpeg4: MPEG-4 视频编码器。 copy: 保留原视频编码,不做重新编码。 编码器选项,每种编码器都有其特定的选项集。这里列出一些常用的编码器选项: 1. H.264 (libx264) -preset: 设置编码速度预设,例如 ultrafast, superfast, veryfast, faster, fast, medium, slow, slower, veryslow。 -crf: 设置 CRF (Constant Rate Factor),用于控制视频质量,范围通常为 0 到 51,数值越小质量越好。 -tune: 设置调优参数,例如 film, animation, grain, stillimage, psnr, ssim 等。 -profile:v: 设置 H.264 编码配置文件,例如 baseline, main, high。 -level: 设置 H.264 编码级别,例如 3.0, 4.0, 4.1 等。 -b:v: 设置视频比特率,例如 1M 表示 1 Mbps。 2. H.265 (libx265) -preset: 设置编码速度预设,例如 ultrafast, superfast, veryfast, faster, fast, medium, slow, slower, veryslow。 -crf: 设置 CRF (Constant Rate Factor),用于控制视频质量,范围通常为 0 到 51,数值越小质量越好。 -tune: 设置调优参数,例如 film, animation, grain, stillimage, psnr, ssim 等。 -profile:v: 设置 H.265 编码配置文件,例如 main, main10, high, high10。 -level: 设置 H.265 编码级别,例如 3.0, 4.0, 4.1 等。 -b:v: 设置视频比特率,例如 1M 表示 1 Mbps。 3. VP9 (libvpx-vp9) -cpu-used: 设置 CPU 使用率,范围通常为 0 到 6,数值越大质量越好,但编码速度越慢。 -crf: 设置 CRF (Constant Rate Factor),用于控制视频质量,范围通常为 0 到 63,数值越小质量越好。 -b:v: 设置视频比特率,例如 1M 表示 1 Mbps。 4. AV1 (libaom-av1) -crf: 设置 CRF (Constant Rate Factor),用于控制视频质量,范围通常为 0 到 63,数值越小质量越好。 -b:v: 设置视频比特率,例如 1M 表示 1 Mbps。 -speed: 设置编码速度,范围 -----------------------------------------------------------------------------【合并视频】 ffmpeg -f concat -safe 0 -i videos.txt -vf "scale=1024:600" -c:v libx265 -crf 23 -preset medium -c:a copy output.mp4 -f concat: 指定使用 concat demuxer 来读取列表文件。 -safe 0: 关闭安全路径检查,允许使用相对路径。如果您使用绝对路径,则可以省略该选项。 -i videos.txt: 指定包含视频文件列表的文本文件。格式 --> file 'video1.mp4' -c:v libx265: 指定视频编码器为 libx265,这是 FFmpeg 中用于 H.265 编码的库。 -crf 23: 控制编码质量。CRF(Constant Rate Factor)值范围一般在 0 到 51 之间,数值越小,质量越高。23 是一个常用的平衡点,既保证了较好的质量,又兼顾了文件大小。 -preset medium: 设置编码速度预设。medium 是一个中等速度的预设,还可以选择 ultrafast, superfast, veryfast, faster, fast, slow, slower, veryslow 等,速度越慢,压缩效率越高。 -c:a copy: 指定音频流不进行重新编码,直接复制。如果需要重新编码音频,可以指定相应的音频编码器,例如 -c:a aac。 output.mp4: 输出文件路径及名称。 -----------------------------------------------------------------------------【合并视频】 思路为:分别处理好音频与视频流,再合并到一起。获取视频中音频(vn 参数为disable video) ffmpeg -i input.mp4 -vn-y -acodec copy output.m4a 去掉视频音频(an 参数为disable audio) ffmpeg -i input.mp4 -an output.mp4 截取视频(从0s开始,截取38s) ffmpeg -ss 00:00:00-t 00:00:38 -i input.mp4 -vcodec copy output.mp4 视频加快速度 ffmpeg -i input.mp4 -filter:v "setpts=0.5*PTS" -c:a copy output.mp4 合并视频(注,在之前尝试过程中合并后视频无声音情况) ffmpeg -f concat -i .\filelist.txt -c copy output.mp4 其中filelist.txt文件内容如下,合并顺序有关与先后顺序。 file 'shadowo1.mp4' file 'shadow21.mp4' file 'shadow11.mp4 添加字幕(ass字幕) ffmpeg -i output.mp4 -vf ass=1.ass video.mp4