0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

音视频图像处理神器FFmpeg有用的命令示例

jf_ZqFkd6Up 来源:linux迷 2023-05-04 14:59 次阅读

ffmpeg由Fabrice Bellard创建,他与QEMU和QuickJS ( JSLinux背后的引擎)的创建者相同。

本文介绍了许多不同的 ffmpeg 用例,假设读者具有该软件的基本知识。您将在本文中看到各种实际示例。更多详细信息,请参考官方文档页面。

尽管它们以多行形式呈现,但以下所有示例都是一行。只需将它们复制并粘贴到您的终端中,然后按 Enter。

1. 编解码器选项

ffmpeg 支持的可用编解码器非常多。以下示例是一些最流行的组合,已在许多不同的商业项目中使用。

1.1 转换为 MP4



linuxmi@linuxmi /home/linuxmi/linuxmi.com                                  
 ffmpeg -i linuxmi.mov -c:v libx264 -c:a aac linuxmi.con.mp4


39a0afc8-e5e2-11ed-ab56-dac502259ad0.png

libx264是最流行的 H.264 编码器之一。libx264+aac组合支持 IE11。使用-crf选项来控制输出质量。


1.2 转换为 WebM


linuxmi@linuxmi /home/linuxmi/linuxmi.com                                  
 ffmpeg -i linuxmi.mov 
  -c:v libvpx-vp9 -crf 31 -b:v 1M 
  -c:a libvorbis 
linuxmi.webm
39af495c-e5e2-11ed-ab56-dac502259ad0.png

-crf代表恒定速率因子。libvpx没有默认的 CRF 值。-crf 31用于 1080p 通常被认为足够好了,而它可以接受 0(无损)和 63(最差质量)之间的任何数字。供您参考,libx264的默认值为 28,范围从 0 到 51。

-b:v是比特率的一个选项。值1M与1000k 相同。

1.3 转换为 Ogg


linuxmi@linuxmi /home/linuxmi/www.linuxmi.com                              
 ffmpeg -i linuxmi.mov 
  -c:v libtheora -q:v 5 
  -c:a libvorbis -q:a 5 
linuxmi.ogg
39bc8cc0-e5e2-11ed-ab56-dac502259ad0.png

-q:v(视频)和-q:a(音频)是可变比特率 (VBR) 质量级别的选项。取值范围是 1-31,其中 1 是最高质量,31 是最低质量。或者,它们分别与-qscale:v和-qscale:a相同。

1.4 转换为 GIF


ffmpeg -i linuxmi.mov 
  -vf " 
    scale=960:-1, 
    fps=16, 
    split[s0][s1];[s0]palettegen[p];[s1][p]paletteuse
  " 
  -loop 0 
linuxmi.gif

1.5 保持原始编码


ffmpeg -i linuxmi.mov -c copy linuxmi.com.mov
这会创建源文件的副本。

1.6 移除音轨


ffmpeg -i linuxmi.mov -c:v copy -an linuxmi.mp4
-an用于删除音轨,同时通过-c:v copy选项保留视频轨道。

1.7 将第 99 帧导出为图像


ffmpeg -i linuxmi.mov 
  -vf "select=eq(n, 98)" -vframes 1 
linuxmi.png
由于帧数从 0 开始,所以选项应该是"select=eq(n, 98)",而不是"select=eq(n, 99)"。

1.8 5秒导出一帧到一张图片


ffmpeg -i linuxmi.mov -ss 00:05:00 -vframes 1 linuxmi.png

2.高级编辑功能

您可以将以下选项与上述任何编解码器设置结合使用。

2.1 从源文件中剪切特定范围


ffmpeg -i linuxmi.mov 
  -ss 00:05:00 -t 12 
linuxmi.mp4
输出文件将从源文件的 5 分钟开始,最大长度为 12 秒,这意味着如果源文件长于该时间,则输出视频将在源视频的 0012 结束。

或者,-ss 0000 -to 0012或-ss 300 -t 12可用于相同的结果。-ss可以不带-t选项使用。

2.2 调整视频大小

调整为 1920x1080



linuxmi@linuxmi /home/linuxmi/www.linuxmi.com                              
 ffmpeg -i linuxmi.mov  -vf "scale=1920:1080"  linuxmi.mp4

39c62dfc-e5e2-11ed-ab56-dac502259ad0.png

将宽度调整为 1920 保持源比率


ffmpeg -i linuxmi.mov 
  -vf "scale=1920:-1" 
linuxmi.mp4

将宽度调整为 1920,但使用黑色填充将高度设置为 2160


ffmpeg -i linuxmi.mov 
  -vf "scale=1920:-1, pad=1920-1color=black" 
linuxmi.mp4

2.3 改变视频播放速度

2 倍速度


ffmpeg -i linuxmi.mov 
  -vf "setpts=PTS/2" 
  -af "asetpts=PTS/2" 
linuxmi.mp4

1/2x 速度


ffmpeg -i linuxmi.mov 
  -vf "setpts=PTS/.5" 
  -af "asetpts=PTS/.5" 
linuxmi.mp4
PTS代表演示时间戳。您可以通过分别在视频过滤器 ( -vf) 和音频过滤器 ( -af)上给出不同的数字来应用不同的视频和音频速度。

2.4 设置每秒帧数(FPS)


ffmpeg -i linuxmi.mov -vf "fps=30" linuxmi.mp4

2.5 合并多个视频


ffmpeg -safe 0 -f concat 
  -i <( 
    for f in $PWD/*.@(mov|mp4); do 
      printf "file ${f}
"; 
    done; 
  ) 
  -c copy 
linuxmi.mov
上面的命令将当前目录中的所有 .mov 和 .mp4 文件合并并创建output.mov文件。所有视频必须具有相同的尺寸比以避免拉伸或变形。

2.6 设置画面组(GOP)

GOP(Group of Pictures)策略影响编码质量,所谓GOP,意思是画面组,一个GOP就是一组连续的画面。


ffmpeg -i linuxmi.mov -g 300 linuxmi.mp4 GOP 表示两个关键帧之间的距离。

2.7 复制源媒体的元数据


ffmpeg -i source.mov 
  -map_metadata 0 -movflags use_metadata_tags 
linuxmi.mp4
由于某些视频存储自定义元数据,此命令可能无法正确复制所有数据。

如果要检查元数据,请安装exiftool并运行:

exiftool -g1 -a -s -gps* linuxmi.mp4`
或者,您可以使用 exiftool 复制元数据,如下所示:

exiftool -tagsFromFile source.mov -All:All linuxmi.mp4

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Linux
    +关注

    关注

    87

    文章

    11236

    浏览量

    209024
  • 编解码器
    +关注

    关注

    0

    文章

    253

    浏览量

    24215
  • 音视频
    +关注

    关注

    4

    文章

    467

    浏览量

    29861
  • 命令
    +关注

    关注

    5

    文章

    679

    浏览量

    21998
  • ffmpeg
    +关注

    关注

    0

    文章

    46

    浏览量

    7386

原文标题:音视频图像处理神器 FFmpeg 有用的命令示例

文章出处:【微信号:Linux迷,微信公众号:Linux迷】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    Linux下基于ffmpeg音视频解码

    FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。采用LGPL或GPL许可证。它提供了录制、转换以及流化音视频的完整解决方案。它包含了非常先进的音频/视频
    的头像 发表于 09-29 14:28 3566次阅读
    Linux下基于<b class='flag-5'>ffmpeg</b><b class='flag-5'>音视频</b>解码

    最新的高效音视频编码及视频图像处理

    本帖最后由 mr.pengyongche 于 2013-4-30 02:58 编辑 最新的高效音视频编码及视频图像处理技术在视频领域
    发表于 10-11 16:39

    2款音视频处理芯片

    Package: 20mm x 20mm 144-pin TQFP with ePad集成电路 (IC) > 接口 - 音视频处理芯片50元/片2、SII9334CTU (SILICON
    发表于 11-26 15:28

    2.4G和5.8G音视频概述

    解调,使模块体积小功耗低灵敏度高等特点;采取贴片或是插件封装形式,方便用户的安装要求。本模块的应用只需简单连接电源,单/双音频线,视频线,接上天线就可接收音乐、图像信号。SKY-TX24017无线音视频
    发表于 11-29 10:49

    【OK210申请】智能音视频处理平台

    申请理由:首先在音视频处理上面210本身就是一个不错的选择,并且飞凌在210系列中有很多通用的摄像头模块,方便后期的平台的搭建。我们实验室前几年购买了十几套飞凌的6410-A的开发板套装,使用起来
    发表于 07-20 10:45

    【OK210申请】智能音视频处理平台

    申请理由:首先是以前买过几套飞凌6410的板子,感觉质量和售后都挺好的。再者我们团队准备搭建一个智能音视频研究的平台, 向飞凌售后质询了一下,说是210的板子更适合做视频处理。我们没有接触过210
    发表于 07-21 09:19

    dm8168 音视频同步问题

    我在8168上用dvrrdk 4.0.03做音视频,我的视频和音频都来自网络,经过解码处理后,再编码,但是编码后的视频音频数据有同步的问题,rdk里面有没有什么接口或者API能让
    发表于 06-23 04:51

    处理器与音视频外设之间怎么连接?

    处理器与音视频外设之间怎么连接?
    发表于 06-08 06:46

    什么是音视频同步?音视频同步的影响因素有哪些?

    什么是音视频同步?有什么要求?音视频同步的影响因素有哪些?音视频同步的常见技术有哪些?
    发表于 06-15 08:48

    FFMPEG如何进行音视频同步的

      PCR同步在非硬件精确时钟源的情况还是谨慎使用,我起初采用PCR同步就会出现,随着时间的推移,软件模拟的时钟不精确会导致视频出现延时或者音视频不同步。  最近研究了FFMPEG的同步技巧,觉得其
    发表于 08-23 16:27

    音视频

    音视频技术都喜欢深究内部最核心的原理和机制,尤其是ffmpeg这个编解码库,可以说是音视频领域事实上的标准。语音智能算法,语言语义分析和理解,流媒体服务器等高端技术也都基于它而构建。希望有幸获得本书,深度学习
    发表于 11-23 08:51

    Blackfin处理器与音视频外设之间的连接

    Blackfin®处理器与音视频外设之间的连接:课程单元:Blackfin®处理器与音视频外设之间的连接主讲人:David Katz第1章:简介第2章:连接至音频转换器
    发表于 09-02 12:36 23次下载

    音视频/信号分配器,音视频/信号分配器是什么意思

    音视频/信号分配器,音视频/信号分配器是什么意思     音视分配器专为音视频信号在传播中进行分配而设计,适用于KTV、MTV
    发表于 03-26 09:51 2710次阅读

    ffmpeg支持的音视频格式有哪些

    FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。采用LGPL或GPL许可证。它提供了录制、转换以及流化音视频的完整解决方案。它包含了非常先进的音频/视频
    发表于 11-01 08:43 2.2w次阅读

    音视频集成是什么 音视频视频有什么区别

    音视频集成是将音频和视频设备、系统和技术进行整合,以实现全面的音视频功能和体验的过程。
    发表于 06-19 17:14 2628次阅读