×

ffmpeg

ffmpeg(FFmpeg命令行使用)

admin admin 发表于2024-09-22 08:55:02 浏览1 评论0

抢沙发发表评论

大家好,如果您还对ffmpeg不太了解,没有关系,今天就由本站为大家分享ffmpeg的知识,包括FFmpeg命令行使用的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!

本文目录

FFmpeg命令行使用

FFmpeg的命令非常多,经常看着会云里雾里的,个人认为没必要去硬背,只要打开Terminal,输入 ffmpeg -help 命令,这条命令会告述你FFmpeg支持的大部分常用命令以及使用方式。查看这些输出的信息,基本上就会使用很多常用的命令了。 你会发现执行 ffmpeg -help 会输出一大坨,那都是些啥玩意呢,不着急,咱们一步一步来慢慢品尝。 第一个就是输出我们安装的FFmpeg的版本号 --prefix 是指FFmpeg的安装路径 --enable 是你安装的FFmpeg支持的三方库 这里可以看出支持 libx264 、 libx265 的编码,以及支持 videotoolbox , videotoolbox 是Mac、iOS上的一个系统自带硬编解码库,FFmpeg也给予了支持,非常的给力。 这是输出FFmpeg里面包含的库,这些都是独立的,是可以单独拎出来使用的,你如果只要编解码,那你就只要在项目中导入 libavcodec 即可 这是告诉我们命令行使用格式 这个是全局参数 这个是输入文件的参数 infile 这个是输入文件的路径 这个是输出文件的参数 outfile 这个是输出文件的路径 细心的你肯定发现 infile 、 outfile 的后面有个 ... ,这是在告诉我们输入、输出文件可以分别有一个或者多个。 比如执行 ffmpeg -i test.h364 -i test.aac -c copy test.mp4 这条命令会把一个h364文件和一个aac的音频文件合并并输出一个mp4格式的文件,这其中就有两个输入文件、一个输出文件。 这些是详细的帮助信息 -h long 打印更多的选项参数。 -h full 打印所有的选项参数,包括所有针对于 format 和 codec 的选项,信息特别的长。 man ffmpeg : 查看FFmpeg的帮助手册。 -h type=name 打印指定名称的 decoder/encoder/demuxer/muxer/filter 的所有选项信息。 比如你要查询 scale 滤镜的使用方式,我们就执行 ffmpeg -h filter=scale 输出如下: 这就告诉我们 scale 滤镜有 w 、 h 等参数,我们就这样使用 scale 滤镜, ffmpeg -i input.mp4 -filter_complex "scale=w=iw/2h=ih/2" output.mp4 其中 iw 代表输入视频的宽, ih 代表输入视频的高,这条命令就把输入的视频缩小一倍,这里你可能会有疑问,我都不记得那些滤镜的名字,就无法使用这个去查了,哈哈不要急,还记得上面的帮助命令吗, ffmpeg -filters 可以输出所有的滤镜名字了,如果你觉的输出太多,你不好找的话,你只要记得这个滤镜大概是叫什么名字、包含什么字母,你就借助 grep 指令去输出里面搜索关键字,这样就只会输出你关心的滤镜名了,如 ffmpeg -filters | grep over 以上是帮助命令,如果你忘记了某个编译器、像素格式或者滤镜的名字,你就可以用这些命令去查看。 以上就是全局参数 以上是音视频的公共参数 以上是视频处理相关参数 以上是音频处理相关 以上字幕处理相关参数 以上就是 ffmpeg -help 的输出说明了,下面咱们来看看常用的命令。 -r 10 表示1秒视频会生成10张图片 -f avfoundation 指定采用avfoundation采集数据使用 -i 1:0 表示 指定视频设备索引为1,指定录音设备索引为0。 使用 ffmpeg -list_devices 1 -f avfoundation -i ’’ 可以打印出设备列表,如下: 因此上述命令中的 -i 1:0 表示采用【Capture screen 0】【Built-in Microphone】即采用屏幕和系统自带的麦克风进行采集。

如何使用ffmpeg

基本选项: -formats 输出所有可用格式 -f fmt 指定格式(音频或视频格式) -i filename 指定输入文件名,在linux下当然也能指定:0.0(屏幕录制)或摄像头 -y 覆盖已有文件 -t duration 记录时长为t -fs limit_size 设置文件大小上限 -ss time_off 从指定的时间(s)开始, 的格式也支持 -title string 标题 -timestamp time 时间戳 -author string 作者 -copyright string 版权信息 -comment string 评论 -album string album名 -v verbose 与log相关的 -target type 设置目标文件类型("vcd", "svcd", "dvd", "dv", "dv50", "pal-vcd", "ntsc-svcd", ...) -dframes number 设置要记录的帧数 视频选项: -b 指定比特率(bits/s),似乎ffmpeg是自动VBR的,指定了就大概是平均比特率 -vb 指定视频比特率(bits/s) -vframes number 设置转换多少桢(frame)的视频 -r rate 桢速率(fps) -s size 分辨率 -aspect aspect 设置视频长宽比(4:3, 16:9 or 1.3333, 1.7777) -croptop size 设置顶部切除尺寸(in pixels) -cropbottom size 设置底部切除尺寸(in pixels) -cropleft size 设置左切除尺寸 (in pixels) -cropright size 设置右切除尺寸 (in pixels) -padtop size 设置顶部补齐尺寸(in pixels) -padbottom size 底补齐(in pixels) -padleft size 左补齐(in pixels) -padright size 右补齐(in pixels) -padcolor color 补齐带颜色(000000-FFFFFF) -vn 取消视频 -vcodec codec 强制使用codec编解码方式(’copy’ to copy stream) -sameq 使用同样视频质量作为源(VBR) -pass n 选择处理遍数(1或者2)。两遍编码非常有用。第一遍生成统计信息,第二遍生成精确的请求的码率 -passlogfile file 选择两遍的纪录文件名为file -newvideo 在现在的视频流后面加入新的视频流 高级视频选项 -pix_fmt format set pixel format, ’list’ as argument shows all the pixel formats supported -intra 仅适用帧内编码 -qscale q 以《数值》质量为基础的VBR,取值0.01-255,约小质量越好 -loop_input 设置输入流的循环数(目前只对图像有效) -loop_output 设置输出视频的循环数,比如输出gif时设为0表示无限循环 -g int 设置图像组大小 -cutoff int 设置截止频率 -qmin int 设定最小质量 -qmax int 设定最大质量 -qdiff int 量化标度间最大偏差 (VBR) -bf int 使用frames B 帧,支持mpeg1,mpeg2,mpeg4 音频选项: -ab 设置比特率(单位:bit/s,也许老版是kb/s) -aframes number 设置转换多少桢(frame)的音频 -aq quality 设置音频质量 (指定编码) -ar rate 设置音频采样率 (单位:Hz) -ac channels 设置声道数 -an 取消音频 -acodec codec 指定音频编码(’copy’ to copy stream) -vol volume 设置录制音量大小(默认为256) -newaudio 在现在的音频流后面加入新的音频流 字幕选项: -sn 取消字幕 -scodec codec 设置字幕编码(’copy’ to copy stream) -newsubtitle 在当前字幕后新增 -slang code 设置字幕所用的ISO 639编码(3个字母) Audio/Video 抓取选项: -vc channel 设置视频捕获通道(只对DV1394) -tvstd standard 设置电视标准 NTSC PAL(SECAM)

ffmpeg decode, encode, transcode, mux, demux, stream, filter的区别

  1. ffmpeg--多媒体视频处理工具

    简单的说,ffmpeg有视频采集功能、视频格式转换、视频抓图、给视频加水印

    值得注意的是,ffmpeg只是提供了编码解码的接口。

  2. decode--译码,解码工具

    如:H264 decode

  3. encode--解码

    值得一提的是:encode+decode=codec(编码方式)

  4. demux是“解析格式”,比如MKV,MOV是格式(专业的叫法是容器)

  5. 格式内有stream,每个stream可能是影像,声音,或字幕,影像声音字幕

总的来说:demux是“解析格式”,比如MKV,MOV是格式,容器内有很多stream,每个stream可能是影像,声音,或字幕,影像声音字幕又各自有不同的编码方式,如H264,AAC,SRT。decode对应于编码方式,如H264 decode.

PHP使用ffmpeg实现后台视频转码,如何监听转化的进度

如果进程是由php发起,可以直接从stdout中获得ffmpeg输出的已编码时长,除以片长得到进度百分比。另外一种方法是,用ffmpeg的report参数打印程序输出到某个指定文件中,读取提取该文件中的已编码时长,同上,除以片长得到进度百分比....

javacv ffmpeg网络不通闪退

闪退的一个重要原因是网络波动过大,系统检测出网络延迟过高的时候就会强制退出。解决办法:javacvffmpeg用信号和网速都不错的网络,看到延迟过高可以自己先行退出再重新登录。

刚开始学习视频解码,想看看ffmpeg源码,请问从哪个方面入手比较好,有什么比较合适的书记或者网站推荐

强烈推荐看看ffmpeg自带的例子,如ffplay.c,ffmpeg.c。这两部分代码看明白就知道怎么用了。网上那些乱七八糟的经验总结,耽误时间。

关于本次ffmpeg和FFmpeg命令行使用的问题分享到这里就结束了,如果解决了您的问题,我们非常高兴。