ffmpeg命令速查

在 FFmpeg 中,根据输出文件的扩展名来确定输出格式。因此,当输出文件的扩展名是.png、.jpg 或其他图片格式时,你可以省略-f image2,FFmpeg 会自动将其识别为图像序列输出。

视频转图(每秒1帧)

ffmpeg -i input.mp4 -r 1 -f image2 ./images/%4d.png

图转视频

ffmpeg -f image2 -i ./images/%4d.png ./videos/image2vid.mp4

批量视频转图 无损

for i in *.mp4; do ffmpeg -i "$i" -r 1 "./images/${i:r}_%04d.png"; done

平衡图片体积与质量

for i in *.mov; do ffmpeg -i "$i" -r 1 -qscale:v 2 "./images/${i:r}_%04d.jpg"; done

常用的 Bash 参数替换模式: ${variable%pattern}:从变量值的末尾开始,删除最短匹配模式 pattern 及其后面的部分。 ${variable%%pattern}:从变量值的末尾开始,删除最长匹配模式 pattern 及其后面的部分。 ${variable#pattern}:从变量值的开头开始,删除最短匹配模式 pattern 及其前面的部分。 ${variable##pattern}:从变量值的开头开始,删除最长匹配模式 pattern 及其前面的部分。 ${i:r} 是一种扩展名去除(Extension Removal)的写法,用于从变量 i 的值中移除文件的扩展名部分。需要注意的是,${i:r} 是一种 zsh shell 的特定写法。在 Bash shell 中,可以使用 ${i%.*} 来实现类似的效果。

加速视频,丢弃音轨。RATE越小,播放速度越快(其实就是帧被抽了)

RATE=0.01 && ffmpeg -i input.mp4 -filter:v "setpts=${RATE}*PTS" -an "output/setpts_${RATE}.mp4"

下载合并m3u8

ffmpeg -protocol_whitelist file,http,https,tcp,tls,crypto -i "https://la3.killcovid2021.com/m3u8/858524/858524.m3u8" -c copy video.mp4
文章作者: Administrator
本文链接:
版权声明: 本站所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 if(xyz!=null)
技术分享
喜欢就支持一下吧
打赏
微信 微信
支付宝 支付宝