ffmpegfs 是一个基于 FUSE 的文件系统,用于在打开时即时转码视频和音频

[ad_1]

我最近偶然发现了 ffmpegfs 并发现它非常有用,所以我想我会写一篇关于它的文章,特别是因为没有其他文章关于它。

ffmpegfs 是一个免费和开源的基于 FUSE 的只读转码文件系统,它可以在打开和读取时即时转换音频和视频格式。 它支持多种格式,包括 MP4、WebM、OGG、MP3、OPUS、MOV、ProRes(Apple Prores 视频和 PCM 音频的 MOV 容器)和 WAV 等。

如果您的媒体收藏中有许多文件无法由某些硬件或软件直接播放(例如 DaVinci Resolve,它在免费的 Linux 版本中编解码器支持有限),这将非常有用 – 而不是对整个媒体收藏进行转码当文件被访问/播放时,可以使用 ffmpegfs 对文件进行动态转码。 您也可以使用它来轻松地转码文件:只需将一些文件放在您用作 ffmpegfs 输入目录的文件夹中,然后从 ffmpegfs 输出文件夹中复制文件,结果文件将被转码为您的格式已为 ffmpegfs 指定。

ffmpegfs 是用 C 和 C++ 编写的,并使用了 FUSE 库。 它还需要 FFmpeg 才能工作。 Libav 也受到支持,但目前被禁用,因为它似乎无法正常工作。 Libav 支持可能很快就会被取消。

这就是这个工具的工作原理。 ffmpegfs 命令挂载目录
IN_DIR

(其中包含您的媒体收藏)在
OUT_DIR

. 访问
OUT_DIR

显示内容
IN_DIR

,所有支持的媒体文件都会在访问时透明地重命名和转码为支持的目标格式之一。

ffmpegfs 特点:

  • 智能转码可以为视频和音频文件创建不同的输出格式. 例如,视频文件可以转换为 MOV,音频文件可以转换为 AIFF。 指定用 + 号分隔的视频和音频文件类型(例如: --desttype=mov+aiff)
  • “自动复制”进行智能流复制例如,如果对已经表示 H264 视频和/或 AAC 音频流的传输流进行转码,则可以简单地将其重新打包到 mp4 容器中而无需重新编码。 自动复制选项:OFF(从不复制流,始终进行转码)、MATCH(如果目标支持编解码器则复制流)、MATCHLIMIT(与 MATCH 相同,仅在目标不大时才复制,否则转码)、STRICT(如果编解码器与所需目标匹配,则复制流, 否则转码)和 STRICTLIMIT(与 STRICT 相同,仅在目标不大时才复制,否则转码)
  • 针对 Web 浏览器优化的内置转码配置文件 像 Firefox、MS Edge 和 IE 11+、Chrome、Safari、 Opera 或傲游
  • 指定视频和音频比特率、视频宽度和高度、去隔行、启用专辑封面到输出文件等
  • 具有各种选项的缓存
  • DVD/蓝光支持
  • 指定转码器线程数

计划在未来版本中支持 Microsoft Windows。

您可能喜欢的来自 Linux Uprising 的其他与 FFmpeg 相关的文章:

  • FFmpeg:如何裁剪视频,包括示例
  • FFmpeg:从原始格式的视频中提取音频或将其转换为 MP3 或 Ogg Vorbis
  • 如何使用 youtube-dl(命令行)下载 YouTube 播放列表并将其转换为 MP3

我们来看几个ffmpegfs的例子。

#1 使用 ffmpegfs 转码来自 ~/Videos 文件夹到 ~/ffmpegfs 进入 WebM (allow_other 允许所有用户,包括 root,访问文件; ro 将其安装为只读):

ffmpegfs --desttype=webm ~/Videos/Movies ~/ffmpegfs -o allow_other,ro

默认情况下,
--desttype

设定为
mp4

.

请注意,
allow_other

FUSE 选项默认只能由 root 使用。 您必须以 root 身份运行 ffmpegfs 或更好地添加
user_allow_other


/etc/fuse.conf

.

#2 使用 ffmpegfs 对所有音乐文件进行转码 ~/Music 使用 ~/ffmpegfs 作为输出目录,到具有 256K 音频比特率的 MP3:

ffmpegfs --audiobitrate=256K --desttype=mp3 ~/Music ~/ffmpegfs2 -o allow_other,ro

#3 转码所有视频文件 ~/media MOV 和同一文件夹中的所有音频文件到 AIFF,到 ~/transcoded 作为输出文件夹,日志级别设置为DEBUG(在调试模式下,日志消息默认输出到stderr),并且案例驻留在 /tmp/cache

ffmpegfs --desttype=mov+aiff --log_maxlevel=DEBUG --cachepath=/tmp/cache ~/media ~/transcoded

你也可以通过挂载文件系统
/etc/fstab

. 有关使用 ffmpegfs 的更多信息,请参阅其帮助(
ffmpegfs --help

) 和手册页 (
man ffmpegfs

)。 您还可以访问其在线文档,但请注意,有些内容已过时。

安装 ffmpegfs

ffmpegfs 在大多数 Linux 发行版的官方存储库中不可用。 Debian 最近将 ffmpegfs 添加到 Bullseye 和 Sid 存储库,因此,该软件包现在也可用于 Ubuntu 20.04 存储库和基于它的 Linux 发行版,如 Pop!_OS 20.04。 从存储库将其安装在这些 Linux 发行版上:

sudo apt install ffmpegfs

对于 Arch Linux 和 Manjaro,您可以从 Arch User Repository (AUR) 获取 ffmpegfs,它可以作为最新的稳定版本或来自 Git 的最新代码提供。

在其他 Linux 发行版上,您需要从源代码安装它。 详见官方安装说明。

[ad_2]

Related Posts