【ffmpeg】视频常用操作合集

news/2024/7/10 20:25:14 标签: ffmpeg, 音视频

1.转码264

ffmpeg -i [原视频.mp4] -vcodec h264 [输出视频.mp4]

2.视频流yuv数据抽取帧

ffmpeg -f rawvideo -s:v [尺寸] -i "[视频源]" -f image2 -q 2 -r [帧数] [文件夹及文件名]

尺寸 : 例如 :640x360
视频源:例如: test.yuv
帧数: 例如:5
文件夹及文件名: 例如:2-5/%04d.png

ffmpeg -f rawvideo -s:v 640x360 -i "1.yuv" -f image2 -q 2 -r 5 out/%04d.png

从1.yuv文件中抽取640*360尺寸的图片,储存在out文件夹中,名字按照0001.png ,0002.png 递增。
yuv数据必须指定尺寸,因为他是源数据,没有行列概念。

3.yuv转为MP4

ffmpeg -f rawvideo -s:v  640x360 -i "1.yuv" -c:v libx264 1.mp4 -y

将640*360的源yuv数据1.yuv转为1.MP4

4.压缩视频(按照比特率500K-700K),同时拆分为图片

压缩视频

ffmpeg -i 1.mp4 -vf scale=640:360 -vcodec libx264 -b:v 500k -bufsize 500k -maxrate 700k 1_360P_500k.mp4

抽取图片

ffmpeg -i 1_360P_500k.mp4 -s:v 640x360 -f image2 -q 2 -r 5 1_360P_500k_5/%04d.png

5.截取视频段

ffmpeg -ss 00:00:17 -to 00:00:50 -i 原视频.mp4 -vcodec copy -acodec copy out.mp4

6.限制比特率为2M/s

ffmpeg -i "1.mp4" -b:v 2M 1_out.mp4

7.缩放到720P

ffmpeg -i 1.mp4 -vf scale=1280:720 -vcodec h264 1_720P.mp4

8.视频拼接

横向拼接

ffmpeg -i 0001.mp4 -i 0001_2.mp4 -filter_complex hstack 0001_cat.mp4

纵向拼接

ffmpeg -i 0001.mp4 -i 0001_2.mp4 -filter_complex vstack 0001_cat.mp4 -y

9.合并视频同时编码成h264

创建txt文件

mylist.txt

内容写上需要合并的视频名称

file '0.mp4'
file '1.mp4'

合并视频并转264

ffmpeg -f concat -safe 0 -i mylist.txt -c copy output.mp4 -vcodec h264 output_h264.mp4

直接合并视频

ffmpeg -f concat -safe 0 -i mylist.txt -c copy output.mp4 

10. 查看视频码率等信息

ffprobe  1.mp4

11. 视频拼接并指定列数

ffmpeg -i 1.mp4 -i 2.mp4 -filter_complex "[0:v]crop=1920:ih:920:0[v0];[1:v]crop=1920:ih:920:0[v1];[v0][v1]hstack=inputs=2[v]" -map "[v]" output.mp4

1920是开始的列,920是总的提取多少列

12.提取特定范围的帧

ffmpeg -i input.mp4 -vf "fps=1" -ss 00:01:00 -to 00:02:30 output_%04d.png

http://www.niftyadmin.cn/n/5240915.html

相关文章

Javaweb之前端工程打包部署的详细解析

6 打包部署 我们的前端工程开发好了,但是我们需要发布,那么如何发布呢?主要分为2步: 前端工程打包 通过nginx服务器发布前端工程 6.1 前端工程打包 接下来我们先来对前端工程进行打包 我们直接通过VS Code的NPM脚本中提供的…

Unity-Shader - 2DSprite描边效果

实现一个简单的2D精灵图描边效果,效果如下 实现思路: 可以通过判断该像素周围是否有透明度为 0的值,如果有,则说明该像素位于边缘。 所以我们需要打开alpha blend,即: Blend SrcAlpha OneMinusSrcAlpha&am…

AI 绘画 | Stable Diffusion LCM和FP8 显存不足的福音

前言 在我们使用Stable Diffusion 作画的时候,普通用户因为电脑显存配置过低,经常会出现爆显存和出图慢的困扰。而SD-WebUI在显存优化方便不如ComfyUI和Fooocus,但是也有一些弥补SD-WebUI显存问题的方案,那就是LCM和FP8。 LCM 教程 简介 LCM 是一个用于 Stable Diffusio…

【链表Linked List】力扣-82 删除链表中的重复元素II

目录 问题描述 解题过程 官方题解 问题描述 给定一个已排序的链表的头 head , 删除原始链表中所有重复数字的节点,只留下不同的数字 。返回 已排序的链表 。 示例 1: 输入:head [1,2,3,3,4,4,5] 输出:[1,2,5]示例…

flask项目的基本配置

1. 目录结构 2. 入口文件app.py from manger import create_app, db from flask_migrate import Migrate from manger import models# 传入settings参数,开发版本“develop”,线上版本“product” app create_app(develop)# 数据库设置 migrate Migra…

京东数据分析:2023年10月京东打印机行业品牌销售排行榜

鲸参谋监测的京东平台10月份打印机市场销售数据已出炉! 10月份,打印机市场整体销售下滑。鲸参谋数据显示,今年10月份,京东平台打印机的销量将近60万,环比降低约2%,同比降低约5%;销售额为4.4亿&a…

Windows(Microsoft)win电脑装Xcode方法

你想在你的Windows电脑上体验和使用苹果的Xcode进行应用打包。遗憾的是,Xcode官方只支持macOS操作系统,但别担心,我们有替代方案可以让你在Windows环境下进行iOS应用的开发和打包。接下来我将指导你如何实现这一目标。 图片来源:W…

c++搭建http服务器

HTTP请求协议格式如下&#xff1a; HTTP响应协议格式如下&#xff1a; #include <iostream> #include <winsock2.h> #include <ws2tcpip.h> #include <string>#pragma comment(lib, "ws2_32.lib")//std::string generateResponse(const st…