安装 s3fs(保险丝)驱动器的 FFMPEG 问题“无法将文件 __.stream.tmp 重命名为 __.stream:不支持操作”

Posted

技术标签:

【中文标题】安装 s3fs(保险丝)驱动器的 FFMPEG 问题“无法将文件 __.stream.tmp 重命名为 __.stream:不支持操作”【英文标题】:FFMPEG trouble with mounted s3fs (fuse) drive "failed to rename file __.stream.tmp to __.stream: Operation not supported" 【发布时间】:2021-11-23 23:01:34 【问题描述】:

*** 请这个问题不是关于我的 ffmpeg 命令,而是当输出文件进入挂载的 s3fs 时停止的事实......

CONTEXT : 当输出文件通过 s3fs (fuse) [linux] 进入挂载的存储桶时转换视频

CONTEXT 2:我的 ffmpeg 命令没有错误,当我在本地执行时 => 一切正常。但是当它进入 s3fs 安装点时,我得到了错误。

FFPMEG 命令:

ffmpeg -i "/home/ffmpeg/112233.mov" 
-c:v libx264 -movflags +dash -preset fast 
-pix_fmt yuv420p -c:a aac -b:a 192k -ac 2 
-profile:v high -b:v 3369k -vf scale=-2:1080 
-bufsize 969k -hls_time 9 -hls_list_size 0 -g 30 
-start_number 0 -streaming 1 -hls_playlist 1 
-lhls 1 -hls_playlist_type event 
-f hls "/mnt/s3fs/test/112233.stream"

当我尝试这个 FFMEG 时:本地 -> 到 -> 本地 = ok

当我尝试这个 FFMEG 时:本地 -> 到 -> s3fs = 几秒钟后停止

"failed to rename file __.stream.tmp to __.stream: Operation not supported"

问题 1:是否有不重命名的 ffmpeg 选项(不创建 .tmp 而仅创建 .m3u8)?

问题 2:或者是否有一个选项可以让 ffmpeg 在发生此错误时继续?

【问题讨论】:

你能用 strace 运行 ffmpeg 来查看哪个系统调用返回 ENOTSUPP 吗?另外您使用的是哪个版本的 s3fs? @AndrewGaul 看到我的回答,问题是-hls_playlist_type event 正在等待第一个段重命名... 但这是一种解决方法——s3fs 有一些潜在的问题阻碍了正常使用。请跟进 GitHub 问题! 原始命令适用于我使用 ffmpeg 和 s3fs 1.90。 【参考方案1】:

我在网上挖掘了一下,发现-hls_playlist_type event“等待”完成第一段以“重命名”.tmp

-hls_playlist_type event 替换为-hls_playlist_type vod 就成功了。

现在 .m3u8 无需重命名即可创建。

【讨论】:

我还删除了-hls_playlist_type,它会立即创建.m3u8.tmp,而-hls_playlist_type vod会等待完整的转码完成以创建.m3u8 s3fs 也指向一个很难重命名的挂载点...我用 cp 而不是 mv ....

以上是关于安装 s3fs(保险丝)驱动器的 FFMPEG 问题“无法将文件 __.stream.tmp 重命名为 __.stream:不支持操作”的主要内容,如果未能解决你的问题,请参考以下文章

Raspbian Jessie:“apt-get upgrade”后无法再安装 NTFS 外部硬盘驱动器(保险丝设备丢失)

s3fs挂s3作为本地盘制作ftp使用

在 AWS ECS 容器上挂载 S3 存储桶作为文件系统

ffmpeg vaapi 驱动问题

更改 s3fs 挂载存储桶的用户所有权

deepin 安装cuda 编译 ffmpeg