对视频指定区域截图
ffmpeg-iFILE0174.avi-vfcrop=140:30:43:663-r1-q:v2-vframes1-fimage2 image-%d.jpeg-vf crop=140:30:43:663表示从x=43,y=663处开始截取x=140,y=30的图片-vframes表示总共要截多少张-f image2表示输出图片的格式,比如Image2q:v 2图片质量image-%d.jpeg生成图像的文件名,可以加上完整路径,%d会使文件名按整数编号,如上述生成图像为image-1.jpeg, image-2.jpeg, …-t持续时间,如-t 4表示持续4s-ss起始时间,如-ss 01:30:14,从01:30:14开始-s格式大小,如-s 640x360-y覆盖,直接使用-r每秒提取的帧数,如上面为每秒1帧,即一张图像
截取关键帧
有一些视频是PPT的图片,可以尝试使用该方式截图
ffmpeg-iplaylist.m3u8-vf"select='eq(pict_type,I)'"-vsyncvfr-q:v2keyframe_%03d.jpg截取视频
ffmpeg-ss00:00:00-t01:07:53-im1.mp4-ccopy m2.mp4-c copy指-c:v copy和-c:a copy的合体,指视频和音频都不要重新编码,因为默认是重新编码的
注意:如果指定了-ss参数后,开头视频有问题,则可以深度删除该参数,即只保留-t参数,分割后看实际效果的。
合并视频
首先在需要合并的视频s所在的文件夹下执行如下命令
for%1in(./*.mp4 ./*.mkv ./*.avi)doechofile%1>>1.txt自动生成1.txt文件,内容如下
fileMOVA0046.avifileMOVA0047.avifileMOVA0048.avifileMOVA0049.avifileMOVA0050.avifileMOVA0051.avifileMOVA0052.avifileMOVA0053.avifileMOVA0054.avi然后使用如下命令对文件进行不转码的合并
ffmpeg-fconcat-i1.txt-ccopy m1.avi分离音视频流
// 只提取视频 ffmpeg-iMOVA00001.AVI-c:vcopy-anm1.mp4 // 只提取音频 ffmpeg-iMOVA00001.AVI-c:acopy-vnm2.mp4合并音视频流
ffmpeg-i01.mp4-i01.wav-c:vcopy merge.mp4音量标准化调整
参考文章ffmpeg -i 01.mp4 -filter:a "loudnorm=i=-14:tp=0.0" 02.mp4
也可以自己使用上面提到的分离和合并的方法把音频分离出来后,使用如gold wave之类的软件进行编辑,然后再合并回去
下载带key的m3u8
参考文章
需要先手动把m3u8和对应的key文件下载下来,然后将m3u8文件中key的uri改为本地的key文件的路径,然后再执行下面的命令ffmpeg -allowed_extensions ALL -protocol_whitelist "file,tls,http,https,crypto,tcp" -i index.m3u8 -c copy out.mp4
实际下载时,可能会发现手动下载下来的.m3u8文件中的所有url地址都是相对路径,如下示例
#EXTM3U #EXT-X-VERSION:3 #EXT-X-TARGETDURATION:10 #EXT-X-MEDIA-SEQUENCE:0 #EXTINF:10.000000, hls-720p-56aca0.ts #EXTINF:10.000000, hls-720p-56aca1.ts #EXT-X-ENDLIST遇到这种情况,需要将下载该.m3u8文件的父路径,比如下载这个文件的完整路径是https://www.baidu.com/video/2024/index.m3u8,那么就将index.m3u8前面的部分(https://www.baidu.com/video/2024/)添加到m3u8文件中分片文件名称的前面,如下所示
#EXTM3U #EXT-X-VERSION:3 #EXT-X-TARGETDURATION:10 #EXT-X-MEDIA-SEQUENCE:0 #EXTINF:10.000000, https://www.baidu.com/video/2024/hls-720p-56aca0.ts #EXTINF:10.000000, https://www.baidu.com/video/2024/hls-720p-56aca1.ts #EXT-X-ENDLIST使用记录:
ffmpeg-allowed_extensionsALL-iMOVA6868.avi-presetmedium-crf0-c:vh264_nvenc-c:aaac-b:a128k-movflags+faststart MOVA6868.mp4| 参数 | 作用 | 说明 |
|---|---|---|
| -c:v libx265 | 视频编码器 | 使用H.265(HEVC)编码,压缩效率比H.264高约50%,适合高清视频。 |
| -preset medium | 编码速度与压缩率平衡 | 预设值从ultrafast(最快)到placebo(最慢),medium是清晰度和速度的折中。 |
| -crf 23 | 质量控制 | 范围0-51,值越小质量越高(文件越大),23是默认值,兼顾清晰度和体积。 |
| -c:a aac -b:a 128k | 音频编码 | 使用AAC编码,比特率128kbps,适合行车记录仪的语音质量需求。 |
| -movflags +faststart | 优化播放 | 将MP4的元数据移到文件头部,便于在线播放(非必需,但推荐)。 |