ffmpeg命令速查
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
本文链接:
/2023/ffmpeg-cli
版权声明:
本站所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自
if(xyz!=null)!
喜欢就支持一下吧
打赏
微信
支付宝