FFMPEG 常用命令整理

news/2024/7/10 21:52:13 标签: ffmpeg, 音视频

MP4转ts


ffmpeg -i small_bunny_1080p_30fps.mp4  small_bunny_1080p_30fps.ts

 MP4转ts 不改变音视频编码格式

ffmpeg -i small_bunny_1080p_30fps.mp4   -c:v copy -c:a copy small_bunny_1080p_30fps.ts

MP4 转 vp9

ffmpeg -i small_bunny_1080p_30fps.mp4 -c:v libvpx-vp9 -c:a libvorbis small_bunny_1080p_30fps_vp9.webm

使用H.265 编码视频

ffmpeg -i small_bunny_1080p_30fps.mp4 -c:v libx265 small_bunny_1080p_30fps_h265.mp4

每一秒插入一个I帧(针对帧数为30帧的视频,其他帧数请调整参数

ffmpeg -i small_bunny_1080p_30fps.mp4 -c:v libx264 -x264-params keyint=30:min-keyint=30:no-scenecut=1 -c:a copy small_bunny_1080p_30fps_h264_keyframe_each_second.mp4

查看我们插入了多少个I帧

mediainfo --Details small_bunny_1080p_30fps_h264_keyframe_each_second.mp4 | grep "slice_type I" | wc -l

将视频平滑拆分,会根据关键帧的位置拆分,每两秒一个视频(如果关键帧间隔大于2秒,则拆分的视频也会大于2秒,可以每2秒插入一个关键帧(会增加文件大小)后再执行拆分

ffmpeg -fflags +genpts -i small_bunny_1080p_30fps.mp4 -map 0 -c copy -f segment -segment_format mp4 -segment_time 2 -segment_list video.ffcat -reset_timestamps 1 -v error chunk-%03d.mp4

合并平滑拆分的视频

ffmpeg -y -v error -i video.ffcat -map 0 -c copy output.mp4

生成只有一个I帧,剩下全是P帧的视频(主要用于测试,根据视频长度调整参数,这里的视频为10s 每秒30帧

ffmpeg -i small_bunny_1080p_30fps.mp4 -c:v libx264 -x264-params keyint=300:min-keyint=300:no-scenecut=1:bframes=0 -c:a copy small_bunny_1080p_30fps_single_I_rest_P.mp4

测试I,P,B帧的数量

mediainfo --Details small_bunny_1080p_30fps_single_I_rest_P.mp4 | grep "slice_type I" | wc -l

mediainfo --Details small_bunny_1080p_30fps_single_I_rest_P.mp4 | grep "slice_type P" | wc -l

mediainfo --Details small_bunny_1080p_30fps_single_I_rest_P.mp4 | grep "slice_type B" | wc -l

使用CAVLC(熵编码的一种,相较于CABAC更快,当然视频会更大)编码视频

ffmpeg -i small_bunny_1080p_30fps.mp4 -c:v libx264 -x264-params keyint=30:min-keyint=30:no-scenecut=1:no-cabac=1 -c:a copy small_bunny_1080p_30fps_h264_keyframe_each_second_CAVLC.mp4

使用CABAC编码视频

ffmpeg -i small_bunny_1080p_30fps.mp4 -c:v libx264 -x264-params keyint=30:min-keyint=30:no-scenecut=1:coder=1 -c:a copy small_bunny_1080p_30fps_h264_keyframe_each_second_CABAC.mp4

使用固定码率编码

ffmpeg -i small_bunny_1080p_30fps.mp4 -b:v 964K -minrate 964K -maxrate 964K -bufsize 2000K  small_bunny_1080p_30fps_transrating_964.mp4

使用编码率编码

ffmpeg -i small_bunny_1080p_30fps.mp4 -minrate 964K -maxrate 3856K -bufsize 2000K  small_bunny_1080p_30fps_transrating_964_3856.mp4

调整视频大小(不改变宽高比

ffmpeg -i small_bunny_1080p_30fps.mp4 -vf scale=480:-1 small_bunny_1080p_30fps_transsizing_480.mp4

提取音频(这里原始音频编码为aac,如果其他格式请自行调整音频编码器和输出格式

ffmpeg -i small_bunny_1080p_30fps.mp4 -vn -c:a copy small_bunny_audio.aac

音视频混合(音频叠加到视频

ffmpeg -i small_bunny_audio.aac -i /files/v/small_bunny_1080p_30fps.mp4 small_bunny_1080p_30fps_muxed.mp4

生成带YUV直方图的视频(相当于水印叠加,用于视频分析

ffmpeg -i small_bunny_1080p_30fps.mp4 -vf "split=2[a][b],[b]histogram,format=yuv420p[hh],[a][hh]overlay" small_bunny_yuv_histogram.mp4

将视频第一秒的视频提取为图片序列(跟帧率有关,30fps则生成30张图片

ffmpeg -y -i small_bunny_1080p_30fps.mp4 -t 00:00:01  smallest_bunny_1080p_30fps_%3d.jpg

使用单张图片生成视频(采用默认帧率 25fps

ffmpeg -loop 1 -i smallest_bunny_1080p_30fps_001.jpg -c:v libx264 -pix_fmt yuv420p -t 10 frame_001.mp4

使用多张图片生成视频(采用默认帧率 25fps

ffmpeg -loop 1 -i smallest_bunny_1080p_30fps_%03d.jpg -c:v libx264 -pix_fmt yuv420p -t 10 from_images.mp4

生成一个单帧视频(只有一帧,用于视频分析

ffmpeg -i minimal.png -pix_fmt yuv420p minimal_yuv420.mp4
//默认采样yuv444
ffmpeg -i minimal.png  minimal_yuv444.mp4


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

相关文章

csdn_export_md

电子数据取证概述 一,什么是电子数据 电子数据的特点 **1、以数字化形式存在。**所有的电子数据都是基于计算机应用和通信等电子化技术手段形成的,用以表示文字、图形符号、数字、字母等信息的资料。与其他证据种类不同,电子数据在本质上而…

《算法竞赛进阶指南》0x51 线性DP

0x51 线性DP 271. 杨老师的照相排列 题意&#xff1a; NNN 个人站成左端对齐的 kkk 排&#xff0c;每排有 NiN_iNi​ 人&#xff0c;Ni>NjN_i > N_jNi​>Nj​ 如果 i<ji < ji<j&#xff0c;则 Ni>NjN_i > N_jNi​>Nj​ 。每一排从左到右身高递减&…

SummingMergeTree

假设有这样⼀种查询需求&#xff1a;终端⽤户只需要查询数据的汇总结果&#xff0c;不关⼼明细数据&#xff0c;并且数据的汇总条件是预先明确的&#xff08;GROUP BY 条件明确&#xff0c;且不会随意改变&#xff09;。 对于这样的查询场景&#xff0c;在ClickHouse中如何解决…

linux git安装及设置

linux安装git&#xff0c;要通过root用户进行安装 一.编译安装步骤如下 1.安装依赖的包 yum updateyum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker 2.下载git源码并解压缩 #卸载旧版本git yum remove gitwget ht…

C++算法恢复训练之选择排序

选择排序是一种简单的排序算法&#xff0c;它的思想是每次从待排序的序列中选出最小的元素&#xff0c;将其放在序列的起始位置&#xff0c;然后再从剩余的元素中选出最小的元素&#xff0c;放在已排序部分的末尾&#xff0c;直到整个序列都有序。 下面是一个用 C 实现的选择排…

【计算机图形学】裁剪算法(Cohen-Sutherland算法 中值分割算法 Liang-Barsky算法)

一 实验目的 编写直线段、多边形裁剪算法熟悉Cohen-Sutherland算法、中值分割算法和Liang-Barsky算法的裁剪二 实验算法理论分析Cohen-Sutherland算法&#xff1a; 中值分割算法&#xff1a; 与CS算法一样&#xff0c;首先对直线段端点进行编码&#xff0c;并把线段与窗口的关…

蓝桥杯训练day5

kmp&#xff0c;单调栈&#xff0c;单调队列&#xff0c;trie树1.kmp算法&#xff08;1&#xff09;831. KMP字符串2.单调栈&#xff08;1&#xff09;830. 单调栈3.单调队列&#xff08;1&#xff09;154. 滑动窗口&#xff08;2&#xff09;135. 最大子序和&#xff08;3&…

理清概念:同步与异步

广义的同步与异步 在广义上&#xff0c;同步和异步是描述两个或多个事件、操作或进程之间的关系。 同步意味着事件、操作或进程是有序的&#xff0c;一个操作必须在另一个操作完成后开始执行。 异步则意味着事件、操作或进程是独立的&#xff0c;可以在不等待其他操作完成的情…