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

最近,我偶然发现了ffmpegfs并发现它非常有用,因此我想发布有关它的信息,特别是因为没有关于它的其他文章。ffmpegfs 是一种基于开放式FUSE的开源免费只读转码文件系统,在您打开或阅读时可以即时转换音频和视频格式。它支持多种格式,例如MP4,WebM,OGG,MP3,OPUS,MOV,ProRes(Apple Prores视频和PCM音频的MOV容器),WAV等。
如果您的媒体收藏夹中有许多文件无法通过某些硬件或软件直接播放(例如,DaVinci Resolve,则免费Linux版本中的编解码器支持受到限制),而不是对整个媒体收藏夹进行转码,这很方便。您可以使用ffmpegfs在访问/播放文件时即时对其进行转码。您还可以使用它轻松地对文件进行代码转换:将一些文件放入用作ffmpegfs输入目录的文件夹中,然后从ffmpegfs输出文件夹中复制文件并指定生成的文件Ve在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相同,仅当目标不大时才复制);否则如果是转码)
  • 内置转码配置文件,针对Firefox,MS Edge,IE 11 +,Chrome,Safari,Opera,Maxthon等网络浏览器进行了优化
  • 视频和音频比特率,视频宽度和高度,指定去隔行,为输出文件启用专辑封面等。
  • 各种选项缓存
  • 指定代码转换器线程数

计划在将来的版本中支持DVD / Bluray和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,ffmpegfs是 Arch用户存储库 (AUR),可以从Git获得最新的稳定版本或最新代码。
对于其他Linux发行版,您需要从源代码安装。见 正式安装步骤 有关更多信息。

Sidebar