118.b2c3b110.js 21 KB

1
  1. (window.webpackJsonp=window.webpackJsonp||[]).push([[118],{426:function(e,t,a){"use strict";a.r(t);var r=a(0),s=Object(r.a)({},(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[a("h1",{attrs:{id:"使用-ffmpeg-转换媒体文件的快速指南-转"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#使用-ffmpeg-转换媒体文件的快速指南-转"}},[e._v("#")]),e._v(" 使用 FFmpeg 转换媒体文件的快速指南(转)")]),e._v(" "),a("p",[a("a",{attrs:{href:"https://opensource.com/article/17/6/ffmpeg-convert-media-file-formats",target:"_blank",rel:"noopener noreferrer"}},[e._v("原文"),a("OutboundLink")],1)]),e._v(" "),a("blockquote",[a("p",[e._v("FFmpeg 是用于快速更改 AV 文件的格式或质量,提取音频,创建 GIF 等的出色工具。")])]),e._v(" "),a("p",[a("img",{attrs:{src:"/images/ffmpeg/2020-01-26/arrows_translation_lead.jpg",alt:"images/ffmpeg/2020-01-26"}})]),e._v(" "),a("p",[a("em",[e._v("图片学分:Jen Wike Huger 摄")])]),e._v(" "),a("p",[e._v("有许多开源工具可用于编辑,调整和将多媒体准确地转换为您所需的内容。诸如 "),a("a",{attrs:{href:"https://www.audacityteam.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Audacity"),a("OutboundLink")],1),e._v(" 或 "),a("a",{attrs:{href:"https://handbrake.fr/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Handbrake"),a("OutboundLink")],1),e._v(" 之类的工具非常出色,但是有时您只想快速将文件从一种格式更改为另一种格式。输入 FFmpeg。")]),e._v(" "),a("p",[e._v("FFmpeg 是处理多媒体文件的不同项目的集合。在许多其他与媒体相关的项目中,它经常在幕后使用。尽管它的名字,它与"),a("a",{attrs:{href:"https://en.wikipedia.org/wiki/Moving_Picture_Experts_Group",target:"_blank",rel:"noopener noreferrer"}},[e._v("运动图像专家组"),a("OutboundLink")],1),e._v("或它创建的各种多媒体格式无关。")]),e._v(" "),a("p",[e._v("在本文中,我将通过命令行工具 ffmpeg 使用 FFmpeg ,这只是 FFmpeg 项目的一个很小的部分。它在许多不同的操作系统上都可用,并且默认情况下包含在某些操作系统中。可以从 "),a("a",{attrs:{href:"https://ffmpeg.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("FFmpeg"),a("OutboundLink")],1),e._v(" 网站或大多数软件包管理器中下载。")]),e._v(" "),a("p",[e._v("FFmpeg 是一个功能强大的工具,几乎可以完成多媒体文件中您可以想象的任何事情。在本文中,我们有兴趣使用它来转换文件,因此我们不会深入研究其整个功能集。在考虑使用 FFmpeg 之前,首先我们需要快速了解媒体文件的确切含义。")]),e._v(" "),a("h2",{attrs:{id:"媒体文件"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#媒体文件"}},[e._v("#")]),e._v(" 媒体文件")]),e._v(" "),a("p",[e._v("在非常高的层次上,媒体文件被分解为一个容器及其流。这些流包括实际的 AV 组件,例如电影的音频或视频,并使用特定的媒体编码或"),a("a",{attrs:{href:"https://en.wikipedia.org/wiki/Codec",target:"_blank",rel:"noopener noreferrer"}},[e._v("编解码器进行编码"),a("OutboundLink")],1),e._v("。每个编解码器都有自己的属性,优点和缺点。例如,"),a("a",{attrs:{href:"https://en.wikipedia.org/wiki/FLAC",target:"_blank",rel:"noopener noreferrer"}},[e._v("FLAC 编解码器"),a("OutboundLink")],1),e._v("适用于高质量无损音频,而 "),a("a",{attrs:{href:"https://en.wikipedia.org/wiki/Vorbis",target:"_blank",rel:"noopener noreferrer"}},[e._v("Vorbis"),a("OutboundLink")],1),e._v(" 旨在与 MP3 竞争文件大小,同时提供更好的音频质量。这意味着 FLAC 格式的文件将比 Vorbis 音频流大得多,但听起来应该更好。两者在本质上都不比另一个更好,因为每个人都在尝试做不同的事情。")]),e._v(" "),a("p",[e._v("容器是流的包装。它提供了媒体播放器和工具可以交互的单个界面。一些容器非常先进,并允许任何类型的流,包括单个容器内的多个视频和音频流。容器中的流不必只是音频或视频。不同的容器将允许不同的流,例如字幕,章节信息或其他元数据。这完全取决于容器设置为允许的范围。")]),e._v(" "),a("p",[e._v("这是媒体文件的抽象表示,并且跳过了容器之间的许多差异。许多要求某些流和元数据,或者对所允许的编解码器或内容施加限制。这种解释足以使您理解本文。要了解更多信息,请单击上面的链接。")]),e._v(" "),a("p",[e._v("请注意,视频和音频编码可能需要很长时间才能运行。使用 FFmpeg 时,您应该准备好适应一段时间。")]),e._v(" "),a("h2",{attrs:{id:"基本转换"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#基本转换"}},[e._v("#")]),e._v(" 基本转换")]),e._v(" "),a("p",[e._v("在转换音频和视频时,令大多数人震惊的是选择正确的格式和容器。幸运的是,FFmpeg 的默认设置非常聪明。通常,它会自动选择正确的编解码器和容器,而无需进行任何复杂的配置。")]),e._v(" "),a("p",[e._v("例如,假设您有一个 MP3 文件,并希望将其转换为 OGG 文件:")]),e._v(" "),a("div",{staticClass:"language- line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-text"}},[a("code",[e._v("ffmpeg -i input.mp3 output.ogg\n")])]),e._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[e._v("1")]),a("br")])]),a("p",[e._v("此命令获取一个名为"),a("code",[e._v("input.mp3")]),e._v("的 MP3 文件,并将其转换为一个名为 "),a("code",[e._v("output.ogg")]),e._v(" 的 OGG 文件。从 FFmpeg 的角度来看,这意味着将 MP3 音频流转换为 Vorbis 音频流并将其包装到 OGG 容器中。您不必指定流或容器类型,因为 FFmpeg 会为您解决。")]),e._v(" "),a("p",[e._v("这也适用于视频:")]),e._v(" "),a("div",{staticClass:"language- line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-text"}},[a("code",[e._v("ffmpeg -i input.mp4 output.webm\n")])]),e._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[e._v("1")]),a("br")])]),a("p",[e._v("由于 "),a("a",{attrs:{href:"https://www.webmproject.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("WebM"),a("OutboundLink")],1),e._v(" 是一种定义明确的格式,因此 FFmpeg 会自动知道它可以支持的视频和音频,并将流转换为有效的 "),a("a",{attrs:{href:"https://en.wikipedia.org/wiki/WebM",target:"_blank",rel:"noopener noreferrer"}},[e._v("WebM"),a("OutboundLink")],1),e._v(" 文件。")]),e._v(" "),a("p",[e._v("根据您选择的容器,此方法并非总是有效。例如,诸如"),a("a",{attrs:{href:"https://matroska.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Matroska"),a("OutboundLink")],1),e._v("之类的容器旨在处理您关心放入其中的几乎所有流,无论它们是否有效。这意味着命令:")]),e._v(" "),a("div",{staticClass:"language- line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-text"}},[a("code",[e._v("ffmpeg -i input.mp4 output.mkv\n")])]),e._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[e._v("1")]),a("br")])]),a("p",[e._v("可能会导致文件具有与"),a("code",[e._v("input.mp4")]),e._v("相同的编解码器,可能不是您想要的文件。")]),e._v(" "),a("h2",{attrs:{id:"选择编解码器"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#选择编解码器"}},[e._v("#")]),e._v(" 选择编解码器")]),e._v(" "),a("p",[e._v("因此,当您想使用 Matroska 这样的容器(可以处理几乎所有流)但又影响输出中的编解码器时,该怎么办?FFmpeg 进行救援!您可以使用-c 标志来选择所需的编解码器。")]),e._v(" "),a("p",[e._v("此标志使您可以设置要用于每个流的不同编解码器。例如,要将音频流设置为 Vorbis,可以使用以下命令:")]),e._v(" "),a("div",{staticClass:"language- line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-text"}},[a("code",[e._v("ffmpeg -i input.mp3 -c:a libvorbis output.ogg\n")])]),e._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[e._v("1")]),a("br")])]),a("p",[e._v("可以更改视频和音频流的方法相同:")]),e._v(" "),a("div",{staticClass:"language- line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-text"}},[a("code",[e._v("ffmpeg -i input.mp4 -c:v vp9 -c:a libvorbis output.mkv\n")])]),e._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[e._v("1")]),a("br")])]),a("p",[e._v("这将使 Matroska 容器具有"),a("a",{attrs:{href:"https://en.wikipedia.org/wiki/VP9",target:"_blank",rel:"noopener noreferrer"}},[e._v("VP9"),a("OutboundLink")],1),e._v("视频流和 Vorbis 音频流,与我们之前制作的 WebM 基本相同。")]),e._v(" "),a("p",[a("code",[e._v("ffmpeg -codecs")]),e._v("命令将打印 FFmpeg 知道的每个编解码器。该命令的输出将根据您安装的 FFmpeg 的版本而变化。")]),e._v(" "),a("h2",{attrs:{id:"更改单个流"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#更改单个流"}},[e._v("#")]),e._v(" 更改单个流")]),e._v(" "),a("p",[e._v("您所拥有的文件经常会以不正确的格式(仅单个流)部分地正确存储。重新编码正确的流可能非常耗时。FFmpeg 可以帮助解决这种情况:")]),e._v(" "),a("div",{staticClass:"language- line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-text"}},[a("code",[e._v("ffmpeg -i input.webm -c:v copy -c:a flac output.mkv\n")])]),e._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[e._v("1")]),a("br")])]),a("p",[e._v("此命令将视频流从"),a("code",[e._v("input.webm")]),e._v("复制到"),a("code",[e._v("output.mkv")]),e._v(",并将 Vorbis 音频流编码为 FLAC。该"),a("code",[e._v("-c")]),e._v("标志是真的很强大。")]),e._v(" "),a("h2",{attrs:{id:"更换容器"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#更换容器"}},[e._v("#")]),e._v(" 更换容器")]),e._v(" "),a("p",[e._v("前面的示例可以应用于音频和视频流,从而使您可以从一种容器格式转换为另一种容器格式,而无需执行任何其他流编码:")]),e._v(" "),a("div",{staticClass:"language- line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-text"}},[a("code",[e._v("ffmpeg -i input.webm -c:av copy output.mkv\n")])]),e._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[e._v("1")]),a("br")])]),a("h2",{attrs:{id:"影响质量"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#影响质量"}},[e._v("#")]),e._v(" 影响质量")]),e._v(" "),a("p",[e._v("现在我们有了编解码器的句柄,下一个问题是:我们如何设置每个流的质量?")]),e._v(" "),a("p",[e._v("最简单的方法是更改 ​​ 比特率,这可能会或可能不会导致不同的质量。人类的视听能力并不像我们想的那么清晰。有时更改比特率会对主观质量产生巨大影响。其他时候,它可能什么也没做,只是更改文件大小。有时,很难尝试一下就很难知道会发生什么。")]),e._v(" "),a("p",[e._v("要设置每个流的比特率,请使用 "),a("code",[e._v("-b")]),e._v(" 标志,该标志的工作方式与 "),a("code",[e._v("-c")]),e._v(" 标志类似,只是您设置了比特率而不是编解码器选项。")]),e._v(" "),a("p",[e._v("例如,要更改视频的比特率,可以这样使用:")]),e._v(" "),a("div",{staticClass:"language- line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-text"}},[a("code",[e._v("ffmpeg -i input.webm -c:a copy -c:v vp9 -b:v 1M output.mkv\n")])]),e._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[e._v("1")]),a("br")])]),a("p",[e._v("这将从"),a("code",[e._v("input.webm")]),e._v("复制音频("),a("code",[e._v("-c:a copy")]),e._v(")并将视频转换为比特率为 1M/s("),a("code",[e._v("-b:v")]),e._v(")的 VP9 编解码器("),a("code",[e._v("-c:v vp9")]),e._v("),所有捆绑在一个 Matroska 容器("),a("code",[e._v("output.mkv")]),e._v(")。")]),e._v(" "),a("p",[e._v("影响质量的另一种方法是使用-r 选项调整视频的帧频:")]),e._v(" "),a("div",{staticClass:"language- line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-text"}},[a("code",[e._v("ffmpeg -i input.webm -c:a copy -c:v vp9 -r 30 output.mkv\n")])]),e._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[e._v("1")]),a("br")])]),a("p",[e._v("这将创建一个新的 Matroska,并复制音频流,并将视频流的帧速率强制为每秒 30 帧,而不是使用输入的帧速率("),a("code",[e._v("-r 30")]),e._v(")。")]),e._v(" "),a("p",[e._v("您还可以使用 FFmpeg 调整视频的尺寸。最简单的方法是使用预定的视频大小:")]),e._v(" "),a("div",{staticClass:"language- line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-text"}},[a("code",[e._v("ffmpeg -i input.mkv -c:a copy -s hd720 output.mkv\n")])]),e._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[e._v("1")]),a("br")])]),a("p",[e._v("这会将视频在输出中修改为 1280x720,但是您可以根据需要手动设置宽度和高度:")]),e._v(" "),a("div",{staticClass:"language- line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-text"}},[a("code",[e._v("ffmpeg -i input.mkv -c:a copy -s 1280x720 output.mkv\n")])]),e._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[e._v("1")]),a("br")])]),a("p",[e._v("这将产生与先前命令完全相同的输出。如果要在 FFmpeg 中设置自定义尺寸,请记住,width 参数("),a("code",[e._v("1280")]),e._v(")位于高度("),a("code",[e._v("720")]),e._v(")之前。")]),e._v(" "),a("p",[e._v("调整帧速率和比特率是影响媒体质量的两种粗糙但有效的技术。如果这些值的质量已经很低,则将它们设置得很高将无法提高其质量。")]),e._v(" "),a("p",[e._v("更改这些设置对于快速减少高质量流以减小文件大小最有效。调整视频的大小并不能提高质量,但是可以使其更适合平板电脑而不是电视。将 640x480 视频的大小更改为 4K 不会改善它。")]),e._v(" "),a("p",[e._v("更改文件的质量是非常主观的事情,这意味着没有一种可以每次使用的方法。最好的方法是进行一些更改,并测试它对您来说看起来还是听起来更好。")]),e._v(" "),a("h2",{attrs:{id:"修改流"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#修改流"}},[e._v("#")]),e._v(" 修改流")]),e._v(" "),a("p",[e._v("通常,您的文件几乎是完美的,只需要修剪掉几部分即可。使用显示您所更改内容的工具可以更轻松地完成此操作,但是如果您确切知道要修剪的位置,则在 FFmpeg 中非常容易做到:")]),e._v(" "),a("div",{staticClass:"language- line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-text"}},[a("code",[e._v("ffmpeg -i input.mkv -c:av copy -ss 00:01:00 -t 10 output.mkv\n")])]),e._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[e._v("1")]),a("br")])]),a("p",[e._v("这将复制视频和音频流("),a("code",[e._v("-c:av copy")]),e._v("),但会修剪视频。的-t 选项集切割持续时间为 10 秒,"),a("code",[e._v("-ss")]),e._v("选项设置视频的开始点在一分钟(修边,在这种情况下"),a("code",[e._v("00:01:00")]),e._v(")。您不仅可以精确到几小时,几分钟和几秒钟,还可以精确到毫秒(如果需要)。")]),e._v(" "),a("h2",{attrs:{id:"提取音频"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#提取音频"}},[e._v("#")]),e._v(" 提取音频")]),e._v(" "),a("p",[e._v("有时您并不真正在乎视频,而只是想要音频。幸运的是,这在带有"),a("code",[e._v("-vn")]),e._v("标志的 FFmpeg 中非常简单:")]),e._v(" "),a("div",{staticClass:"language- line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-text"}},[a("code",[e._v("ffmpeg -i input.mkv -vn audio_only.ogg\n")])]),e._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[e._v("1")]),a("br")])]),a("p",[e._v("此命令仅从输入中提取音频,将其编码为 Vorbis,然后将其保存到 "),a("code",[e._v("audio_only.ogg")]),e._v(" 中。现在您有了隔离的音频流。您还可以以相同方式使用 "),a("code",[e._v("-an")]),e._v(" 和 "),a("code",[e._v("-sn")]),e._v(" 标志来去除音频和字幕流。")]),e._v(" "),a("h2",{attrs:{id:"用它制作-gif"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#用它制作-gif"}},[e._v("#")]),e._v(" 用它制作 GIF")]),e._v(" "),a("p",[e._v("最近,动画 GIF(因为我不是怪物所以用硬 g 表示)卷土重来。我个人认为 GIF 是您可以选择的最差的视频格式。它具有可怕的压缩质量和大小;在颜色,帧速率和容器元数据方面有非常严格的限制;并且不支持音频。尽管如此,它还是很受欢迎。那么,如何将视频剪辑制作成动画 GIF?")]),e._v(" "),a("p",[e._v("如果您想制作不带音频的视频,则使用 "),a("code",[e._v("-an")]),e._v(" 标志(类似于我们上面的操作)比创建动画 GIF 更好,但是有很多地方支持不支持其他视频格式的 GIF 。对于所有这些:")]),e._v(" "),a("div",{staticClass:"language- line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-text"}},[a("code",[e._v("ffmpeg -i input.mkv output.gif\n")])]),e._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[e._v("1")]),a("br")])]),a("p",[e._v("此命令创建与输入文件相同尺寸的 GIF。这通常是个坏主意,因为 GIF 相对于其他视频格式的压缩效果不佳(以我的经验,GIF 的大小约为源视频的八倍)。使用-s 选项将 GIF 调整为较小的尺寸可能会有所帮助,尤其是在输入源非常大的情况下,例如高清视频。")]),e._v(" "),a("h2",{attrs:{id:"其他工具"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#其他工具"}},[e._v("#")]),e._v(" 其他工具")]),e._v(" "),a("p",[e._v("尽管 FFmpeg 是大多数 AV 任务的必备工具,但它并非对所有事物而言都是完美的。有一些工具与 FFmpeg 结合使用,可以使一切变得简单一些。")]),e._v(" "),a("h3",{attrs:{id:"从-youtube-抓取视频"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#从-youtube-抓取视频"}},[e._v("#")]),e._v(" 从 YouTube 抓取视频")]),e._v(" "),a("p",[e._v("将某些内容上传到 YouTube,丢失原始源视频并仅保留 YouTube 版本非常容易。检索 YouTube 视频副本的最简单方法是什么?")]),e._v(" "),a("p",[a("code",[e._v("Youtube-dl")]),e._v("是一个漂亮的小工具,可用于从 YouTube 和其他一些视频流服务中获取视频。使用起来超级简单:")]),e._v(" "),a("div",{staticClass:"language- line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-text"}},[a("code",[e._v("youtube-dl https://www.youtube.com/watch?v=2m5nW9CQLJ0\n")])]),e._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[e._v("1")]),a("br")])]),a("p",[e._v("此命令通过指定的 URL 下载视频并将其保存在本地。")]),e._v(" "),a("p",[e._v("Youtube-dl 有几个选项可以控制下载视频的质量和格式,但是我发现使用上面的命令更容易。它将最高质量的音频和视频下载到一个文件中,然后使用 FFmpeg 将它们转换为所需的格式。")]),e._v(" "),a("h3",{attrs:{id:"获取有关媒体的信息"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#获取有关媒体的信息"}},[e._v("#")]),e._v(" 获取有关媒体的信息")]),e._v(" "),a("p",[e._v("有时,您只需要知道媒体容器中的内容即可。尽管有几种工具可以做到这一点,但我首选的是 "),a("a",{attrs:{href:"https://mediaarea.net/en/MediaInfo",target:"_blank",rel:"noopener noreferrer"}},[e._v("MediaInfo"),a("OutboundLink")],1),e._v("。MediaInfo 显示媒体容器内每个不同流的所有信息,以及输入文件的元数据。这为您提供了您可能想知道的所有信息,并且可能提供了许多您不想要的东西。")]),e._v(" "),a("p",[e._v("运行命令"),a("code",[e._v("mediainfo inputFile.mkv")]),e._v("以人类可读的形式显示有关输入文件的信息列表。")]),e._v(" "),a("h2",{attrs:{id:"更多"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#更多"}},[e._v("#")]),e._v(" 更多")]),e._v(" "),a("p",[e._v("这仅仅是 FFmpeg 可以做的事情的表面。幸运的是,FFmpeg 的"),a("a",{attrs:{href:"http://ffmpeg.org/documentation.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("文档"),a("OutboundLink")],1),e._v("和该项目的其他工具非常好,值得一看。它会教您有关这只狗可以做的许多不同技巧的所有事情。")]),e._v(" "),a("p",[e._v("如果您想使用带有用于转换多媒体的图形界面的工具,那么 "),a("a",{attrs:{href:"https://handbrake.fr/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Handbrake"),a("OutboundLink")],1),e._v(" 是在 Linux,Mac OS X 和 Windows 上非常出色的工具。手刹在引擎盖下使用 FFmpeg(以及其他工具)。")])])}),[],!1,null,null,null);t.default=s.exports}}]);