当前位置: 首页 > news >正文

ffmpeg -- 常用口令

文章目录

      • 1.视频格式转换
      • 2.设置比特率
      • 3.设置帧率
      • 4.强制让输入视频帧率为1,输出视频帧率为24
      • 5.长视频截短
      • 6.自动分割视频的bash脚本
      • 7.每一帧都保存成图片

1.视频格式转换

ffmpeg -i input.avi output.mp4

2.设置比特率

ffmpeg -i input.avi -b:v 64k -bufsize 64k output.mp4

3.设置帧率

ffmpeg -i input.avi -r 24 output.mp4

4.强制让输入视频帧率为1,输出视频帧率为24

ffmpeg -r 1 -i input.m2v -r 24 output.mp4

5.长视频截短

# 将一个时长为 2 小时的视频分割成每个时长为 0.5 小时的四个短视频
ffmpeg -i input_video.mp4 -t 00:30:00 -c copy part1.mp4
ffmpeg -ss 00:30:00 -i input_video.mp4 -t 00:30:00 -c copy part2.mp4
ffmpeg -ss 01:00:00 -i input_video.mp4 -t 00:30:00 -c copy part3.mp4
ffmpeg -ss 01:30:00 -i input_video.mp4 -c copy part4.mp4

-i input_video.mp4:指定输入视频文件。
-t 00:30:00:指定输出视频的持续时间为 30 分钟。
-ss 00:30:00:指定开始时间点为 30 分钟。
-c copy:指定使用“copy”方式来执行快速分割,以避免重新编码视频,提高处理速度。
part1.mp4、part2.mp4、part3.mp4、part4.mp4:分割出的四个短视频文件名。

6.自动分割视频的bash脚本

#!/bin/bash# 检查输入参数
if [ "$#" -ne 2 ]; thenecho "Usage: $0 input_video.mp4 segment_duration_in_seconds"exit 1
fiinput_video=$1
segment_duration=$2# 获取输入视频文件的基本名称(不包括扩展名)
filename=$(basename -- "$input_video")
filename_no_ext="${filename%.*}"# 计算视频时长并取整
duration=$(ffprobe -v error -show_entries format=duration -of default=noprint_wrappers=1:nokey=1 "$input_video" | cut -f1 -d.)# 计算分割成几段
segments=$((duration / segment_duration))# 分割视频
for ((i=0; i<segments; i++)); dostart_time=$((i * segment_duration))output_file="${filename_no_ext}_part${i}.mp4"ffmpeg -ss $start_time -i "$input_video" -t $segment_duration -c copy "$output_file"
doneecho "视频分割完成!"

7.每一帧都保存成图片

ffmpeg -i input_video.mp4 -vf "fps=1" image-%04d.png

小心硬盘空间不够哦 – test.split 是我做测试的文件夹,里面是视频的每一帧图片,视频大小30M,图片大小 274M
在这里插入图片描述

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Keepalived + LVS实现高可用
  • 华为设备支持的逻辑接口类型及逻辑接口配置
  • 速成cesium而忽略前端基础,你可能会遇到这些坑!
  • Liunx搭建Rustdesk远程桌面服务
  • 仿RabbiteMq实现简易消息队列正式篇(需求分析)
  • springboot2.X 与rabbit 整合实现消息投递
  • element-plus的表单输入框有清除按钮的,文字输入前后宽度不一致怎么解决
  • 《计算机组成原理》(第3版)第6章 计算机的运算方法 复习笔记
  • MySQL Workbench数据库常用操作, HeidiSQL工具使用
  • 无字母绕过webshell
  • 手机云测试平台推荐
  • grom接入Prometheus,grafana
  • 我从“天坑”专业转行到AI工程师,年薪一跃30W!
  • 初识python人脸识别(简单小项目)
  • Android 启动动画太生硬
  • .pyc 想到的一些问题
  • CAP 一致性协议及应用解析
  • CentOS从零开始部署Nodejs项目
  • iOS编译提示和导航提示
  • Java 23种设计模式 之单例模式 7种实现方式
  • Java 实战开发之spring、logback配置及chrome开发神器(六)
  • JavaScript-Array类型
  • Linux编程学习笔记 | Linux多线程学习[2] - 线程的同步
  • MySQL QA
  • Spark学习笔记之相关记录
  • 读懂package.json -- 依赖管理
  • 浮动相关
  • 极限编程 (Extreme Programming) - 发布计划 (Release Planning)
  • 聊聊springcloud的EurekaClientAutoConfiguration
  • 区块链技术特点之去中心化特性
  • 跳前端坑前,先看看这个!!
  • 小程序开发中的那些坑
  • 携程小程序初体验
  • ​批处理文件中的errorlevel用法
  • # Python csv、xlsx、json、二进制(MP3) 文件读写基本使用
  • #HarmonyOS:基础语法
  • (17)Hive ——MR任务的map与reduce个数由什么决定?
  • (3)llvm ir转换过程
  • (4)(4.6) Triducer
  • (vue)页面文件上传获取:action地址
  • (八十八)VFL语言初步 - 实现布局
  • (附源码)springboot助农电商系统 毕业设计 081919
  • (十八)Flink CEP 详解
  • (十八)用JAVA编写MP3解码器——迷你播放器
  • (转)Oracle存储过程编写经验和优化措施
  • (转)清华学霸演讲稿:永远不要说你已经尽力了
  • (转载)CentOS查看系统信息|CentOS查看命令
  • ***微信公众号支付+微信H5支付+微信扫码支付+小程序支付+APP微信支付解决方案总结...
  • /etc/sudoers (root权限管理)
  • ::什么意思
  • ??如何把JavaScript脚本中的参数传到java代码段中
  • [ HTML + CSS + Javascript ] 复盘尝试制作 2048 小游戏时遇到的问题
  • [<MySQL优化总结>]
  • [AMQP Connection 127.0.0.1:5672] An unexpected connection driver error occured
  • [Android] Amazon 的 android 音视频开发文档