ffmpeg命令大全

2023-11-14


前言
FFMPEG是特别强大的专门用于处理音视频的开源库。你既可以使用它的API对音视频进行处理,也可以使用它提供的工具,如ffmpeg, ffplay, ffprobe,来编辑你的音视频文件。
本文将简要介绍一下 FFMPEG 库的基本目录结构及其功能,然后详细介绍一下我们在日常工作中,如何使用ffmpeg提供的工具来处理音视频文件。

FFMPEG 目录及作用

• libavcodec:提供了一系列编码器的实现。
• libavformat:实现在流协议,容器格式及其本IO访问。
• libavutil:包括了hash器,解码器和各利工具函数。
• libavfilter:提供了各种音视频过滤器。
• libavdevice:提供了访问捕获设备和回放设备的接口。
• libswresample:实现了混音和重采样。
• libswscale:实现了色彩转换和缩放工能。

FFMPEG基本概念

在讲解 FFMPEG 命令之前,我们先要介绍一些音视频格式的基要概念。
• 音/视频流
在音视频领域,我们把一路音/视频称为一路。如我们小时候经常使用VCD看港片,在里边可以选择粤语或国语声音,其实就是CD视频文件中存放了两路音频流,用户可以选择其中一路进行播放。
• 容器
我们一般把 MP4、 FLV、MOV等文件格式称之为容器。也就是在这些常用格式文件中,可以存放多路音视频文件。以 MP4 为例,就可以存放一路视频流,多路音频流,多路字幕流。
• channel
channel是音频中的概念,称之为声道。在一路音频流中,可以有单声道,双声道或立体声。

FFMPEG 命令

我们按使用目的可以将 FFMPEG 命令分成以下几类:
• 基本信息查询命令
• 录制
• 分解/复用
• 处理原始数据
• 滤镜
• 切割与合并
• 图/视互转
• 直播相关
除了 FFMPEG 的基本信息查询命令外,其它命令都按下图所示的流程处理音视频。
在这里插入图片描述
然后将编码的数据包传送给解码器(除非为数据流选择了流拷贝,请参阅进一步描述)。解码器产生未压缩的帧(原始视频/ PCM音频/ …),可以通过滤波进一步处理(见下一节)。在过滤之后,帧被传递到编码器,编码器并输出编码的数据包。最后,这些传递给复用器,将编码的数据包写入输出文件。
默认情况下,ffmpeg只包含输入文件中每种类型(视频,音频,字幕)的一个流,并将其添加到每个输出文件中。它根据以下标准挑选每一个的“最佳”:对于视频,它是具有最高分辨率的流,对于音频,它是具有最多channel的流,对于字幕,是第一个字幕流。在相同类型的几个流相等的情况下,选择具有最低索引的流。
您可以通过使用-vn / -an / -sn / -dn选项来禁用某些默认设置。要进行全面的手动控制,请使用-map选项,该选项禁用刚描述的默认设置。
下面我们就来详细介绍一下这些命令。

基本信息查询命令

FFMPEG 可以使用下面的参数进行基本信息查询。例如,想查询一下现在使用的 FFMPEG 都支持哪些 filter,就可以用 ffmpeg -filters 来查询。详细参数说明如下:

参数 说明
-version 显示版本。
-formats 显示可用的格式(包括设备)。
-demuxers 显示可用的demuxers。
-muxers 显示可用的muxers。
-devices 显示可用的设备。
-codecs 显示libavcodec已知的所有编解码器。
-decoders 显示可用的解码器。
-encoders 显示所有可用的编码器。
-bsfs 显示可用的比特流filter。
-protocols 显示可用的协议。
-filters 显示可用的libavfilter过滤器。
-pix_fmts 显示可用的像素格式。
-sample_fmts 显示可用的采样格式。
-layouts 显示channel名称和标准channel布局。
-colors 显示识别的颜色名称。

接下来介绍的是 FFMPEG 处理音视频时使用的命令格式与参数。
命令基本格式及参数
下面是 FFMPEG 的基本命令格式:

ffmpeg [global_options] {[input_file_options] -iinput_url} ...
                         {[output_file_options] output_url} ...

ffmpeg通过 -i选项读取输任意数量的输入“文件”(可以是常规文件,管道,网络流,抓取设备等,并写入任意数量的输出“文件”。
原则上,每个输入/输出“文件”都可以包含任意数量的不同类型的视频流(视频/音频/字幕/附件/数据)。流的数量和/或类型是由容器格式来限制。选择从哪个输入进入到哪个输出将自动完成或使用 -map 选项。
要引用选项中的输入文件,您必须使用它们的索引(从0开始)。例如。第一个输入文件是0,第二个输入文件是1,等等。类似地,文件内的流被它们的索引引用。例如。 2:3是指第三个输入文件中的第四个流。
上面就是 FFMPEG 处理音视频的常用命令,下面是一些常用参数:

主要参数

参数 说明
-f fmt(输入/输出) 强制输入或输出文件格式。格式通常是自动检测输入文件,并从输出文件的文件扩展名中猜测出来,所以在大多数情况下这个选项是不需要的。
-iurl(输入) 输入文件的网址
-y(全局参数) 覆盖输出文件而不询问。
-n(全局参数) 不要覆盖输出文件,如果指定的输出文件已经存在,请立即退出。
-c [:stream_specifier] codec(输入/输出,每个流) 选择一个编码器(当在输出文件之前使用)或解码器(当在输入文件之前使用时)用于一个或多个流。codec 是解码器/编码器的名称或 copy(仅输出)以指示该流不被重新编码。如:ffmpeg -i INPUT -map 0 -c:v libx264 -c:a copy OUTPUT
-codec [:stream_specifier]编解码器(输入/输出,每个流) 同 -c
-t duration(输入/输出) 当用作输入选项(在-i之前)时,限制从输入文件读取的数据的持续时间。当用作输出选项时(在输出url之前),在持续时间到达持续时间之后停止输出。
-ss位置(输入/输出) 当用作输入选项时(在-i之前),在这个输入文件中寻找位置。请注意,在大多数格式中,不可能精确搜索,因此ffmpeg将在位置之前寻找最近的搜索点。当转码和-accurate_seek被启用时(默认),搜索点和位置之间的这个额外的分段将被解码和丢弃。当进行流式复制或使用-noaccurate_seek时,它将被保留。当用作输出选项(在输出url之前)时,解码但丢弃输入,直到时间戳到达位置。
-frames [:stream_specifier] framecount(output,per-stream) 停止在帧计数帧之后写入流。
-filter [:stream_specifier] filtergraph(output,per-stream) 创建由filtergraph指定的过滤器图,并使用它来过滤流。filtergraph是应用于流的filtergraph的描述,并且必须具有相同类型的流的单个输入和单个输出。在过滤器图形中,输入与标签中的标签相关联,标签中的输出与标签相关联。有关filtergraph语法的更多信息,请参阅ffmpeg-filters手册。

视频参数

参数 说明
-vframesnum(输出) 设置要输出的视频帧的数量。对于-frames:v,这是一个过时的别名,您应该使用它。
-r [:stream_specifier] fps(输入/输出,每个流) 设置帧率(Hz值,分数或缩写)。作为输入选项,忽略存储在文件中的任何时间戳,根据速率生成新的时间戳。这与用于-framerate选项不同(它在FFmpeg的旧版本中使用的是相同的)。如果有疑问,请使用-framerate而不是输入选项-r。作为输出选项,复制或丢弃输入帧以实现恒定输出帧频fps。
-s [:stream_specifier]大小(输入/输出,每个流) 设置窗口大小。作为输入选项,这是video_size专用选项的快捷方式,由某些分帧器识别,其帧尺寸未被存储在文件中。作为输出选项,这会将缩放视频过滤器插入到相应过滤器图形的末尾。请直接使用比例过滤器将其插入到开头或其他地方。格式是’wxh’(默认 - 与源相同)。
-aspect [:stream_specifier] 宽高比(输出,每个流) 设置方面指定的视频显示宽高比。aspect可以是浮点数字符串,也可以是num:den形式的字符串,其中num和den是宽高比的分子和分母。例如“4:3”,“16:9”,“1.3333”和“1.7777”是有效的参数值。如果与-vcodec副本一起使用,则会影响存储在容器级别的宽高比,但不会影响存储在编码帧中的宽高比(如果存在)。
-vn(输出) 禁用视频录制。
-vcodec编解码器(输出) 设置视频编解码器。这是-codec:v的别名。
-vffiltergraph(输出) 创建由filtergraph指定的过滤器图,并使用它来过滤流。

音频参数

参数 说明
-aframes(输出) 设置要输出的音频帧的数量。这是-frames:a的一个过时的别名。
-ar [:stream_specifier] freq(输入/输出,每个流) 设置音频采样频率。对于输出流,它默认设置为相应输入流的频率。对于输入流,此选项仅适用于音频捕获设备和原始分路器,并映射到相应的分路器选件。
-ac [:stream_specifier]通道(输入/输出,每个流) 设置音频通道的数量。对于输出流,它默认设置为输入音频通道的数量。对于输入流,此选项仅适用于音频捕获设备和原始分路器,并映射到相应的分路器选件。
-an(输出) 禁用录音。
-acodec编解码器(输入/输出) 设置音频编解码器。这是-codec的别名:a。
-sample_fmt [:stream_specifier] sample_fmt(输出,每个流) 设置音频采样格式。使用-sample_fmts获取支持的样本格式列表。
-affiltergraph(输出) 创建由filtergraph指定的过滤器图,并使用它来过滤流。

了解了这些基本信息后,接下来我们看看 FFMPEG 具体都能干些什么吧。

录制

首先通过下面的命令查看一下 mac 上都有哪些设备。

ffmpeg -f avfoundation -list_devicestrue -i""
录屏
ffmpeg -f avfoundation -i1 -r 30out.yuv

• -f 指定使用avfoundation采集数据。
• -i指定从哪儿采集数据,它是一个文件索引号。在我的MAC上,1代表桌面(可以通过上面的命令查询设备索引号)。
• -r 指定帧率。按ffmpeg官方文档说-r与-framerate作用相同,但实际测试时发现不同。-framerate 用于限制输入,而-r用于限制输出。
注意,桌面的输入对帧率没有要求,所以不用限制桌面的帧率。其实限制了也没用。
录屏+声音

ffmpeg-favfoundation-i 1:0-r 29.97-c:vlibx264-crf 0 -c:alibfdk_aac-profile:aaac_he_v2-b:a 32kout.flv

• -i 1:0 冒号前面的 “1” 代表的屏幕索引号。冒号后面的"0"代表的声音索相号。
• -c:v与参数 -vcodec一样,表示视频编码器。c 是 codec 的缩写,v 是video的缩写。
• -crf是 x264 的参数。 0 表式无损压缩。
• -c:a与参数 -acodec一样,表示音频编码器。
• -profile 是fdk_aac的参数。 aac_he_v2 表式使用 AAC_HE v2 压缩数据。
• -b:a指定音频码率。 b 是 bitrate的缩写, a是 audio的缩与。
录视频

ffmpeg -framerate 30 -f avfoundation -i0out.mp4 

• -framerate 限制视频的采集帧率。这个必须要根据提示要求进行设置,如果不设置就会报错。
• -f 指定使用avfoundation采集数据。
• -i指定视频设备的索引号。
视频+音频

ffmpeg-framerate 30 -favfoundation-i 0:0out.mp4

录音

ffmpeg-favfoundation-i:0out.wav

录制音频裸数据

ffmpeg-favfoundation-i:0-ar 44100 -fs16leout.pcm

分解与复用

流拷贝是通过将 copy 参数提供给-codec选项来选择流的模式。它使得ffmpeg省略了指定流的解码和编码步骤,所以它只能进行多路分解和多路复用。这对于更改容器格式或修改容器级元数据很有用。在这种情况下,上图将简化为:
在这里插入图片描述
由于没有解码或编码,速度非常快,没有质量损失。但是,由于许多因素,在某些情况下可能无法正常工作。应用过滤器显然也是不可能的,因为过滤器处理未压缩的数据。
抽取音频流

ffmpeg -i input.mp4 -acodeccopy -vnout.aac

• acodec: 指定音频编码器,copy 指明只拷贝,不做编解码。
• vn: v 代表视频,n 代表 no 也就是无视频的意思。
抽取视频流

ffmpeg -i input.mp4 -vcodeccopy -an out.h264

• vcodec: 指定视频编码器,copy 指明只拷贝,不做编解码。
• an: a 代表视频,n 代表 no 也就是无音频的意思。
转格式

ffmpeg -iout.mp4 -vcodeccopy -acodeccopyout.flv

上面的命令表式的是音频、视频都直接 copy,只是将 mp4 的封装格式转成了flv。
音视频合并

ffmpeg -iout.h264 -iout.aac -vcodeccopy -acodeccopyout.mp4

处理原始数据
提取YUV数据

ffmpeg-iinput.mp4-an-c:vrawvideo-pixel_formatyuv420pout.yuv
ffplay-swxhout.yuv

• -c:vrawvideo指定将视频转成原始数据
• -pixel_format yuv420p 指定转换格式为yuv420p
YUV转H264

ffmpeg-frawvideo-pix_fmtyuv420p-s 320x240-r 30 -iout.yuv-c:vlibx264-frawvideoout.h264

提取PCM数据

ffmpeg -iout.mp4 -vn -ar44100 -ac 2 -f s16le out.pcm
ffplay -ar44100 -ac 2 -f s16le -iout.pcm

PCM转WAV

ffmpeg-fs16be-ar 8000 -ac 2 -acodecpcm_s16be-iinput.rawoutput.wav

滤镜

在编码之前,ffmpeg可以使用libavfilter库中的过滤器处理原始音频和视频帧。几个链式过滤器形成一个过滤器图形。ffmpeg区分两种类型的过滤器图形:简单和复杂。

简单滤镜

简单的过滤器图是那些只有一个输入和输出,都是相同的类型。在上面的图中,它们可以通过在解码和编码之间插入一个额外的步骤来表示:

简单的filtergraphs配置了per-stream-filter选项(分别为视频和音频使用-vf和-af别名)。一个简单的视频filtergraph可以看起来像这样的例子:

请注意,某些滤镜会更改帧属性,但不会改变帧内容。例如。上例中的fps过滤器会改变帧数,但不会触及帧内容。另一个例子是setpts过滤器,它只设置时间戳,否则不改变帧。

复杂滤镜

复杂的过滤器图是那些不能简单描述为应用于一个流的线性处理链的过滤器图。例如,当图形有多个输入和/或输出,或者当输出流类型与输入不同时,就是这种情况。他们可以用下图来表示:

复杂的过滤器图使用-filter_complex选项进行配置。请注意,此选项是全局性的,因为复杂的过滤器图形本质上不能与单个流或文件明确关联。
-lavfi选项等同于-filter_complex。
一个复杂的过滤器图的一个简单的例子是覆盖过滤器,它有两个视频输入和一个视频输出,包含一个视频叠加在另一个上面。它的音频对应是amix滤波器。
添加水印

ffmpeg -iout.mp4  -vf"movie=logo.png,scale=64:48[watermask];[in][watermask] overlay=30:10 [out]" water.mp4

• -vf中的 movie 指定logo位置。scale 指定 logo 大小。overlay 指定 logo 摆放的位置。
删除水印
先通过ffplay找到要删除 LOGO 的位置

ffplay -itest.flv -vfdelogo=x=806:y=20:w=70:h=80:show=1

使用delogo滤镜删除 LOGO

ffmpeg -itest.flv -vfdelogo=x=806:y=20:w=70:h=80output.flv

视频缩小一倍

ffmpeg -iout.mp4 -vf scale=iw/2:-1 scale.mp4

• -vf scale 指定使用简单过滤器 scale,iw/2:-1 中的iw指定按整型取视频的宽度。 -1 表示高度随宽度一起变化。
视频裁剪

ffmpeg -iVR.mov  -vf crop=in_w-200:in_h-200 -c:v libx264 -c:a copy -video_size1280x720 vr_new.mp4

crop 格式:crop=out_w:out_h❌y
• out_w: 输出的宽度。可以使用in_w表式输入视频的宽度。
• out_h: 输出的高度。可以使用in_h表式输入视频的高度。
• x : X坐标
• y : Y坐标
如果 x和y 设置为 0,说明从左上角开始裁剪。如果不写是从中心点裁剪。
倍速播放

ffmpeg -i out.mp4 -filter_complex"[0:v]setpts=0.5*PTS[v];[0:a]atempo=2.0[a]" -map"[v]" -map"[a]" speed2.0.mp4

• -filter_complex复杂滤镜,[0:v]表示第一个(文件索引号是0)文件的视频作为输入。setpts=0.5*PTS表示每帧视频的pts时间戳都乘0.5 ,也就是差少一半。[v]表示输出的别名。音频同理就不详述了。
• map 可用于处理复杂输出,如可以将指定的多路流输出到一个输出文件,也可以指定输出到多个文件。"[v]" 复杂滤镜输出的别名作为输出文件的一路流。上面 map的用法是将复杂滤镜输出的视频和音频输出到指定文件中。
对称视频

ffmpeg  -iout.mp4 -filter_complex"[0:v]pad=w=2*iw[a];[0:v]hflip[b];[a][b]overlay=x=w" duicheng.mp4

• hflip水平翻转
如果要修改为垂直翻转可以用vflip。
画中画

ffmpeg -i out.mp4 -i out1.mp4 -filter_complex"[1:v]scale=w=176:h=144:force_original_aspect_ratio=decrease[ckout];[0:v][ckout]overlay=x=W-w-10:y=0[out]" -map"[out]" -movflagsfaststartnew.mp4

录制画中画

ffmpeg  -f avfoundation -i"1" -framerate 30 -f avfoundation -i"0:0"

-r 30 -c:v libx264 -preset ultrafast
-c:alibfdk_aac -profile:a aac_he_v2 -ar44100 -ac 2
-filter_complex"[1:v]scale=w=176:h=144:force_original_aspect_ratio=decrease[a];[0:v][a]overlay=x=W-w-10:y=0[out]"
-map"[out]" -movflagsfaststart -map1:a b.mp4
多路视频拼接

ffmpeg  -f avfoundation -i"1" -framerate 30 -f avfoundation   -i"0:0" -r 30 -c:v libx264 -preset ultrafast -c:alibfdk_aac -profile:a aac_he_v2 -ar44100 -ac 2 -filter_complex"[0:v]scale=320:240[a];[a]pad=640:240[b];[b][1:v]overlay=320:0[out]" -map"[out]" -movflagsfaststart  -map1:a  c.mp4

音视频的拼接与裁剪
裁剪

ffmpeg-iout.mp4-ss 00:00:00-t 10 out1.mp4

• -ss指定裁剪的开始时间,精确到秒
• -t 被裁剪后的时长。
合并
首先创建一个 inputs.txt 文件,文件内容如下:
file ‘1.flv’
file ‘2.flv’
file ‘3.flv’
然后执行下面的命令:

ffmpeg-fconcat-iinputs.txt-ccopyoutput.flv

hls切片

ffmpeg-iout.mp4-c:vlibx264-c:alibfdk_aac-strict-2-fhlsout.m3u8

• -strict -2 指明音频使有AAC。
• -f hls转成 m3u8 格式。
视频图片互转
视频转JPEG

ffmpeg-itest.flv-r 1 -fimage2image-%3d.jpeg

视频转gif

ffmpeg-iout.mp4-ss 00:00:00-t 10 out.gif

图片转视频

ffmpeg-fimage2-iimage-%3d.jpegimages.mp4

直播相关

推流

ffmpeg -re -iout.mp4 -c copy -f flv rtmp://server/live/streamName

拉流保存

ffmpeg -i rtmp://server/live/streamName -c copy dump.flv

转流

ffmpeg -i rtmp://server/live/originalStream -c:a copy -c:v copy -f flv rtmp://server/live/h264Stream

实时推流

ffmpeg -framerate 15 -f avfoundation -i"1" -s 1280x720 -c:v libx264  -f  flv rtmp://localhost:1935/live/room

ffplay
播放YUV 数据

ffplay-pix_fmtnv12-s 192x144 1.yuv

播放YUV中的 Y平面

ffplay -pix_fmt nv21 -s 640x480 -vfextractplanes='y' 1.yuv
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ffmpeg命令大全 的相关文章

  • 使用 MediaRecorder 录制屏幕特定视图

    我想录制特定的屏幕视频View链接只想记录里面执行的动作LinearLayout 现在 MediaRecorder正在录制整个屏幕 如何录制屏幕的特定部分 MediaRecorder 通过媒体投影API 记录整个屏幕 至少从 Android
  • 使用 ffmpeg 从 unix 命令批量将 wav 文件转换为 16 位

    我有一个由许多子文件夹组成的文件夹 每个子文件夹都有其他子文件夹 其中包含 wav 文件 我想像这样转换所有文件 ffmpeg i BmBmGG BmBmBmBm wav acodec pcm s16le ar 44100 BmBmGG B
  • 如何在Android项目中使用libffmpeg.so?

    我正在尝试在 Android 中创建一个屏幕录制应用程序 为此 我使用 FFmpeg 我已经创建了 libffmpeg so 文件 现在我想在 Android 项目中使用相同的方法来调用它的本机函数 我怎样才能做到这一点 本教程提供了有关此
  • 使用 Ffmpeg 编辑视频元数据

    我想更改视频元数据 原始视频信息 ffmpeg i video mp4 Metadata major brand mp42 minor version 0 compatible brands isomavc1mp42 creation ti
  • 适用于 iPhone 和 HTTP 直播的实时视频聊天

    所以一般来说 我想为 iPhone 制作一个具有视频聊天功能的应用程序 但经过多次搜索 我仍然找不到任何成功的结果 是否有任何公共或私有 API 可用于在 iPhone 上执行此操作 如果您的答案是 是 请帮助我 基本上 我想要的是读取连接
  • ffmpeg AVFrame 到 opencv Mat 转换

    我目前正在开发一个使用 ffmpeg 解码接收到的帧的项目 解码后 我想将 AVFrame 转换为 opencv Mat 帧 以便我可以在 imShow 函数上播放它 我拥有的是字节流 我将其读入缓冲区 解码为 AVFrame f fope
  • ffmpeg:音频样本的字节顺序

    我使用 ffmpeg 的 avcodec 从我的 C 应用程序中的音乐文件中检索原始音频样本 对于我测试的文件 这些文件样本的字节序似乎是小字节序 但我想知道对于我尝试解码的所有文件是否总是如此 即来自 ffmpeg 的实现或至少它的体系结
  • 在 MacOS 终端上运行 ffmpeg [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我对 MacOS 相当陌生 我发现使用终端来获取信息并不容易ffmpeg和我在 Window 上一样正常运行 我有 ffmpeg 二进制文件ffmpe
  • 如何仅在使用 ffmpeg 添加相同速度的分离音频流时更改视频速度?

    我正在使用 ffmpeg 作为视频过滤器 但是 当我改变视频速度时 我遇到了问题 音频比视频长 ffmpeg i INPUT mp4 filter v setpts 0 5 PTS shortest y preset ultrafast O
  • 在 macOS 上为 MoviePy 安装 ffmpeg 失败并出现 SSL 错误

    我正在尝试编写一个 Python 程序 在 Mac OS 10 11 16 上使用 MoviePy 将 MP4 文件转换为 GIF 我用 import moviepy editor as mp 我收到一条错误消息 说我需要打电话imagei
  • 致命错误:libavcodec/avcodec.h 没有这样的文件或目录编译终止

    我正在尝试使用 gcc 执行tutorial01 c 并且 gcc 和tutorial01 c 以及 libavcodec 和 libavformat 及其关联文件位于同一文件夹中 它给了我这个错误 致命错误 libavcodec avco
  • FFMPEG波形透明,背景纯色

    我正在尝试使用 ffmpeg 生成波形 我希望背景为纯色 实际波形为透明 以下部分实现了我想要的 除了有黑色背景 我希望能够将其更改为任何颜色 但波形是透明的 我怎样才能用 ffmepg 实现这个目标 ffmpeg i input mp3
  • C++ OpenCV 3.4 / FFMPEG 3.4.1 VideoWriter 和 MP4 输出文件格式

    我正在运行 Linux 内核 4 9 35 ti r44 的 ARM BeagleBone X 15 Debian 机器 在我的 C Qt 5 应用程序中 我想将 cv Mat 帧保存为 MP4 格式视频 我安装了 libx264 并从头开
  • FFMPEG:将 YUV 数据转储到 AVFrame 结构中

    我正在尝试转储YUV420数据进入AVFrameFFMPEG 的结构 从下面的链接 http ffmpeg org doxygen trunk structAVFrame html http ffmpeg org doxygen trunk
  • 无法从 webm 视频中提取 webp 中的帧

    我无法从 8K webp 视频中提取帧 我正在使用 ffmpeg 来提取帧 这是我正在使用的命令 ffmpeg i content to extract webm frame 2d webp 我得到的输出文件中没有任何数据 但是 当我导出为
  • ffmpeg计算视频比特率

    我想知道如何计算该视频的比特率 http jell yfish us media jellyfish 30 mbps hd hevc mkv http jell yfish us media jellyfish 30 mbps hd hev
  • 如何将AVFrame转换为glTexImage2D使用的纹理?

    如您所知 AVFrame 有 2 个属性 pFrame gt data pFrame gt linesize 当我从视频 sdcard test mp4 android平台 读取帧后 并将其转换为RGB AVFrame副 img conve
  • FFmpeg 缩放不是平滑中心(而是锯齿形)

    我尝试执行基本操作zoompan https www ffmpeg org ffmpeg all html zoompan with FFmpeg 我有一个输入图像 png 1280x720 并从中创建一个 8 秒的视频 mp4 320x1
  • PowerShell 脚本 ffmpeg

    作为一名优秀的 Windows 系统管理员 我终于开始学习 PowerShell 话虽这么说 我不知道我在做什么 惊讶 惊讶 我认为远离生产环境 在家里使用 PowerShell 对我来说将是一次很好的学习经历 最近 我开始使用 FFMPE
  • 使用 ffmpeg 库以可变帧率模式将一系列图像(cv::Mat)保存到 mp4 文件,如何设置 pts?

    在C 代码中 我可以正确保存一系列图像 opencv的cv Mat 到 mp4 文件 使用ffmpeg图书馆 请参阅此处的问题和答案 当我尝试将多个 RGB 数据保存到 output mp4 文件时 avformat write heade

随机推荐

  • 网络分析工具——WireShark的使用(超详细)

    网络分析工具 WireShark的使用 简介 WireShark软件安装 Wireshark 开始抓包示例 WireShark抓包界面 WireShark 主要分为这几个界面 TCP包的具体内容 Wireshark过滤器设置 wiresha
  • 素数环问题(回溯法)

    素数环是一个计算机程序问题 指的是将从1到n这n个整数围成一个圆环 若其中任意2个相邻的数字相加 结果均为素数 那么这个环就成为素数环 现在要求输入一个n 求n个数围成一圈有多少种素数环 规定第一个数字是1 include
  • Python实现常用的假设检验

    开门见山 这篇文章 教大家用Python实现常用的假设检验 服从什么分布 就用什么区间估计方式 也就就用什么检验 比如 两个样本方差比服从F分布 区间估计就采用F分布计算临界值 从而得出置信区间 最终采用F检验 建设检验的基本步骤 前言 假
  • Angular ng-model

    验证是否是邮箱
  • 【电源】开关电源工作原理

    1 开关电源的定义 输入交流电压 AC 经由整流滤波以后可获得一高压的直流电压 DC 1 4AC 此电压接入交换元件当做开关使用在20KHZ 100KHZ的高频状态 这时直流高压会被切割成高频的方波信号 这个方波信号经由功率隔离变压器 在二
  • Java类的声明及文件命名规范】- 在Java中定义公共类的正确姿势

    Java类的声明及文件命名规范 在Java中定义公共类的正确姿势 引言 在Java编程中 类的声明和文件的命名是非常重要的 这决定了代码的结构性和可维护性 本文将详细介绍如何在Java中声明公共类 并遵循正确的文件命名规范 以确保代码的可读
  • MSP430项目设计:2020年TI杯大学生电子设计竞赛 坡道行驶电动小车(C题)循迹小车(分享项目展示视频与源码)

    文章目录 题目要求 一 硬件设计 二 理论分析与计算 三 电路与程序设计 四 测试方案与测试结果 五 项目展示 2021年10月27 2022年1月1日 可承接毕业设计 课程设计 价格实惠 有意可添加Q2809786963 哔哩哔哩项目展示
  • 在eclipse下单步调试python

    在eclipse下可以单步调试python的方法 1 右键单击标尺栏添加断点 2 将鼠标移至需要添加断点的代码行 使用快捷键 Ctrl F10 在弹出的菜单栏中选择 Add Breakpoint 添加断点 添加好断点后 选择 Debug A
  • 软件工程实践作业----软件评测

    这个作业属于哪个课程 lt 软件工程23年春季 gt 这个作业要求在哪里 lt 软件工程实践作业 软件评测 gt 这个作业的目标 对产品调研评测 思考分析 建议和规划 其他参考文献 构建之法 目录 Bug严重性量化标准 一 第一部分 调研评
  • iphonex屏幕出现一条绿线_如何解决iPhone屏幕断触、触控不灵敏问题?

    虽然从显示技术和触控体验方面来说 iPhone 都能超过绝大多数智能手机 但是在日常使用过程中偶尔会存在一些问题 例如断触 触摸不灵敏 有些问题来自于系统本身 有些则可能是硬件原因 针对使用过程中遇到的屏幕问题 可以从以下 4 个方面解决
  • Unity 初识:坐标系与向量

    世界坐标系 场景中的绝对坐标系 场景上所有物体都是以该坐标系的原点来确定各自位置的 世界坐标即物体在世界坐标系中的位置 局部坐标系 以物体的世界坐标为原点 角度为朝向 大小为单位 所产生一个新的坐标系 该坐标系中 物体的位置 旋转 大小都会
  • 免费国外视频素材网站

    这里自己收藏几个可以免费下载国外视频的网站 希望大家喜欢 可以的话给个关注哟 Pexels Videos https videos pexels com Pexels 是一个著名的免费图片平台 每天都会有大量的设计师和博客写手来这里为他们的
  • 前端接入萤石云

    萤石云有两个方法使用 npm引入 非npm引入 两个方法中的js内容不同 所以容器初始化方法也不同 详情可到github查看 https github com Hikvision Ezviz npm引入 步骤一 首先通过npn下载 npm
  • 对字符串按照一定的长度来分行或者添加其他数据

    核心代码 对字符串按照一定的长度来分行或者添加其他数据 param str 原始字符串 param int length 插入的间隔长度 param string append 需要插入的字符串 return string 返回字符串 fu
  • 【程序员面试金典】实现一个函数,检查二叉树是否平衡,

    题目描述 实现一个函数 检查二叉树是否平衡 平衡的定义如下 对于树中的任意一个结点 其两颗子树的高度差不超过1 给定指向树根结点的指针TreeNode root 请返回一个bool 代表这棵树是否平衡 题目分析 lt 方法1 gt 平衡二叉
  • [附代码]多输入AD模数转换,数据接受模块 Verilog 实现 (授人与渔)

    要素察觉 本文基于 AD7888 八输入通道 模数转换芯片 对转换后的数据在 FPGA 中进行接收 所使用的 HDL 为 Verilog 所有实现步骤依据 AD7888 DataSheet 中给出的相关数据和时序图 对原理和相应 Veril
  • mysql中的锁

    锁分类 MySQL中的锁 按照锁的粒度分 分为以下三类 1 全局锁 锁定数据库中的所有表 2 表级锁 每次操作锁住整张表 3 行级锁 每次操作锁住对应的行数据 全局锁 全局锁就是对整个数据库实例加锁 加锁后整个实例就处于只读状态 后续的DM
  • 网易笔试题

    网易笔试不难 但是给了我一个教训 所以记下来以留念 时间 11月3日8 00 后来改到10 00 地点 西安交通大学教2南315教室 赶到考场时 离考试开始时间只差2分钟了 找了个座位坐下后没有任何的等待笔试就开始了 网易的笔试题目很有趣
  • CVE-2023-21839 【vulhub weblogic 漏洞复现】

    漏洞概述 由于Weblogic IIOP T3协议存在缺陷 当IIOP T3协议开启时 允许未经身份验证的攻击者通过IIOP T3协议网络访问攻击存在安全风险的WebLogic Server 漏洞利用成功WebLogic Server可能被
  • ffmpeg命令大全

    ffmpeg命令大全 FFMPEG 目录及作用 FFMPEG基本概念 FFMPEG 命令 基本信息查询命令 主要参数 视频参数 音频参数 录制 录屏 分解与复用 滤镜 简单滤镜 复杂滤镜 直播相关 前言 FFMPEG是特别强大的专门用于处理