ffmpeg分割成帧

标签 ffmpeg frames

嘿,我想将一个一秒长(25fps)的视频分割成 25 个单独的视频文件。我知道我可以将其分割成 jpeg,但我需要保留音频。所以当我重新编译时音频仍然存在。

这是我试图仅抓取第一帧(带音频):

ffmpeg -i 1.mov -vcodec mjpeg -qscale 1 -an -ss 00:00:00:00 -t 00:00:00:1 frame1.mov

但是好像不行。我假设 ffmpeg 支持这种格式的时间戳是错误的吗?时:分:秒:f?

谢谢

最佳答案

您假设 ffmpeg 支持该格式的时间戳是错误的,但这不是唯一的问题

  • ffmpeg 不支持您正在使用的时间格式。选项可以是时间(以秒为单位),也可以是 hh:mm:ss[.xxx](两个冒号和一个点,而不是三个冒号)。
  • 您的示例代码专门剥离音频。这就是 -an 的作用。
  • 当您真正需要帧时按时间分割并不是一个好主意。尽管由于音频帧不太可能与视频帧 1:1 匹配,但这可能是最好的选择。
  • 最重要的是,大多数视频和音频编解码器都是有损的,因此不适合分成很多部分然后重新组合在一起。为了在不严重影响质量的情况下做到这一点,您需要首先将视频和音频转换为原始格式,对其进行操作,然后在完成您想要对片段执行的任何操作后重新转码为压缩格式。您仍然会失去一些质量,但不会像其他情况下那么严重。

关于ffmpeg分割成帧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2691996/

相关文章:

c++ - FFMPEG:未定义对 `avcodec_register_all' 的引用未链接

c++ - libmediainfo 有替代方案吗?

ruby - 使用框架在站点上自动化表单和抓取(使用 Mechanize)

javascript - 像框架一样停靠的页脚?

javascript - 当用户离开我的网站时,将标题附加到页面(他们也会这样做)

css - 定位框架集或框架

python-3.x - 即使安装 ffmpeg 也找不到 FFserver 命令

video - FFMPEG 显示图像顶部

javascript - HTML 5 当前时间准确性

java - Pong 游戏运行速度太快,且带有 FPS 计数器