开发者社区 > 云原生 > Serverless > 正文

请问下,使用函数计算进行FFmpeg转换mp4音视频的时候,发现大文件转码会报错,请问哪里有限制吗

请问下,使用函数计算进行FFmpeg转换mp4音视频的时候,发现大文件转码会报错,请问哪里有限制吗 ?

命令如下:ffmpeg -i bibibili.mp4 -c copy -movflags +faststart -y bibibili-output.mp4

frame=239783 fps=8443 q=-1.0 size= 1328896kB time=02:46:40.93 bitrate=1088.5kbits/s speed= 352x
frame=246326 fps=8515 q=-1.0 size= 1380096kB time=02:51:13.82 bitrate=1100.4kbits/s speed= 355x
[mp4 @ 0x5a01e40] Starting second pass: moving the moov atom to the beginning of the file frame=247749 fps=5246 q=-1.0 Lsize= 1385651kB time=02:52:13.18 bitrate=1098.5kbits/s speed= 219x
video:1383524kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.153724% Error closing file /data/UserA/bibibili-output10.mp4: Operation not permitted , inputFileSize: 1418945095, outputFileSize: 1418804010 2023/06/15 02:49:45.890455 request: test-uuid, callback url is invalid, ignore notify result. FC Invoke End RequestId: 1-648a7b69-5a5463c2e3ed206451f9c965

展开
收起
云上静思 2023-06-15 17:24:42 127 0
6 条回答
写回答
取消 提交回答
  • FFmpeg对于大文件的转码有一定的限制。在默认情况下,FFmpeg会限制单个文件的最大大小,以避免内存不足或磁盘空间耗尽的情况。这个限制因操作系统而异,通常为2GB到4GB不等。如果您尝试转换超过这个限制的文件,就会出现报错的情况。 您可以通过修改FFmpeg的配置文件来增加单个文件的最大大小限制。

    2023-06-16 15:19:04
    赞同 展开评论 打赏
  • 公众号:网络技术联盟站,InfoQ签约作者,阿里云社区签约作者,华为云 云享专家,BOSS直聘 创作王者,腾讯课堂创作领航员,博客+论坛:https://www.wljslmz.cn,工程师导航:https://www.wljslmz.com

    阿里云函数计算本身没有对文件大小进行限制。但是,由于函数计算的特殊性质和资源限制,可能会对大文件转码产生一些限制。

    具体来说,可能会受到以下几个方面的影响:

    1. 内存限制:函数计算默认情况下只分配 512MB 的内存,如果要处理大文件,可能需要调整为更大的内存配置。

    2. 执行时间限制:函数计算有最长执行时间限制,默认为 10 秒,如果转码任务需要更长的时间,也需要相应地调整超时时间。

    3. 磁盘空间限制:函数计算实例本身的磁盘空间有限,如果要处理大文件,可能需要使用 OSS 等对象存储服务来存储和读取数据。

    4. 并发数限制:函数计算的并发数受到限制,如果同时有多个请求,可能需要通过队列等方式来进行协调。

    基于以上因素,可能会出现大文件转码报错的情况。建议您根据具体情况进行调整,比如适当增加内存和超时时间,将文件存储在 OSS 中,并加入合理的队列机制等。

    此外,还需要注意 FFmpeg 转码的命令参数是否正确,以及是否有足够的权限访问读写文件等。

    2023-06-16 15:01:34
    赞同 展开评论 打赏
  • 值得去的地方都没有捷径

    函数计算有一些限制,其中包括内存、磁盘空间和执行时间等。如果您的文件较大,可能会超出函数计算的磁盘空间限制,从而导致转码失败。您可以尝试使用OSS或其他云存储服务存储您的大文件,并在函数计算中使用对应的SDK或API进行读取和转码,以避免磁盘空间限制的问题。

    此外,您也可以尝试调整您的函数计算配置,例如增加内存或执行时间限制,以提高函数计算的性能和容错能力。另外,您可以尝试使用FFmpeg的其他参数或调整命令,例如调整视频的编码格式或分辨率等,以提高转码的效率和质量。

    最后,您也可以查看函数计算的日志以获取更多的信息,以便更好地诊断和解决问题。

    2023-06-15 18:38:21
    赞同 展开评论 打赏
  • 函数计算有一些限制,例如内存、CPU、磁盘空间等。转码大文件可能会超出这些限制导致报错。

    建议您检查一下函数计算的配置是否足够支持您的转码操作,可以尝试增加内存或者使用更高配置的实例类型。

    此外,您可以通过分片上传和转码的方式来处理大文件,将大文件分成多个小文件进行转码,最后再将它们合并成一个输出文件。

    2023-06-15 18:22:29
    赞同 展开评论 打赏
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    是的,函数计算对于使用 FFmpeg 进行 mp4 音视频转换时存在一些限制和注意事项。以下是一些常见的限制和建议,供您参考:

    1. 内存和磁盘空间:由于函数计算默认为每个函数提供最多 3GB 的内存和 512MB 的临时磁盘空间,因此在转换大文件时可能会出现内存不足或磁盘空间不足的问题。为了解决这个问题,您可以尝试增加函数内存和临时磁盘空间配额,或者使用其他云存储或 NAS 等服务来处理大文件。

    2. 超时和并发:函数计算还有一个默认的超时时间限制,通常为 30 秒到 900 秒不等,如果转换过程超过了该限制,函数将自动终止。同时,函数计算还有一个并发执行限制,即同一时间只能运行一定数量的函数实例。为了避免这些限制,您应该优化函数代码和配置,以便更有效地处理音视频转换任务。

    3. 访问权限和网络连接:由于函数计算是一个隔离的、无状态的环境,它可能没有直接访问外部资源、网络或存储设备的权限。因此,在进行音视频转换时,您需要检查函数角色和安全组设置是否正确,并确保可以访问所需的资源和服务。

    4. FFmpeg 版本和参数:最后,您需要确认使用的 FFmpeg 版本和转换参数是否正确。在函数计算中,建议使用已编译为静态链接库的 FFmpeg,以避免依赖项冲突和版本不兼容问题。同时,请注意选择适当的转换参数和编解码器,以获得最佳转换效果和性能。

    2023-06-15 17:37:04
    赞同 展开评论 打赏
  • 命令里加个-safe试试

    此答案来自钉钉群“阿里函数计算官网客户"

    2023-06-15 17:36:19
    赞同 展开评论 打赏
滑动查看更多

快速交付实现商业价值。

相关产品

  • 函数计算
  • 相关电子书

    更多
    Hologres Serverless之路:揭秘弹性计算组 立即下载
    Serverless开发平台: 让研发效能再提升 立即下载
    Serverless 引领云上研发新范式 立即下载