从 MP4/FLV 中提取帧?

发布于 2024-12-18 01:39:42 字数 61 浏览 1 评论 0原文

我知道 FFMPEG 是可能的,但是如果我有部分文件(比如没有开头和结尾)该怎么办。是否可以从中提取一些帧?

I know it's possible with FFMPEG, but what to do if I have a partial file (like without the beginning and the end). Is is possible to extract some frames from it?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

飘过的浮云 2024-12-25 01:39:42

该命令

ffmpeg -ss 00:00:25 -t 00:00:00.04 -i YOURMOVIE.MP4 -r 25.0 YOURIMAGE%4d.jpg

  • 将提取从第 25 秒 [-ss 00:00:25] 开始的
  • ,在 0.04 秒 [-t 00:00:00.04] 后停止,
  • 从输入文件 YOURMOVIE.MP4 读取数据
  • 仅使用每秒 25.0 帧 ,即每 1 帧一帧/25 秒 [-r 25.0]
  • 作为 JPEG 图像,名称为 YOURIMAGE%04d.jpg,其中 %4d 是带前导零的 4 位自动递增数字

在应用选项 [-r] 之前检查电影的帧速率,同样适用于 [-t],除非您想使用自定义速率提取帧。

但从未尝试过使用裁剪(损坏?)的输入文件进行此操作。
值得一试。

The command

ffmpeg -ss 00:00:25 -t 00:00:00.04 -i YOURMOVIE.MP4 -r 25.0 YOURIMAGE%4d.jpg

will extract frames

  • beginning at second 25 [-ss 00:00:25]
  • stopping after 0.04 second [-t 00:00:00.04]
  • reading from input file YOURMOVIE.MP4
  • using only 25.0 frames per second, i. e. one frame every 1/25 seconds [-r 25.0]
  • as JPEG images with the names YOURIMAGE%04d.jpg, where %4d is a 4-digit autoincrement number with leading zeros

Check you movie for the framerate before applying option [-r], same applicable for [-t], unless you want to extract the frames with the custom rate.

Never tried this with the cropped (corrupted?) input file though.
Worth to try.

深巷少女 2024-12-25 01:39:42

这可能非常困难。 MP4 文件格式包含一个“moov”原子,它具有指向音频和视频“样本”的指针。如果您拥有的 mp4 文件片段没有 moov 原子,您的工作将会复杂得多。您必须开发逻辑来检查“mdat”原子(其中包含所有音频和视频样本)并使用有根据的猜测来找到音频和视频边界。

更糟糕的是,如果没有 moov 原子,您将没有解码切片所需的 SPS 和 PPS。你必须合成替代品;如果您知道用于创建 MP4 的编解码器,那么您也许能够从类似编码的文件中复制 SPS 和 PPS;如果不是,这可能是一个痛苦的反复试验过程,因为切片(H.264 编码图片)的语法取决于 SPS 和 PPS 中指定的值。

This could be VERY difficult. The MP4 file format includes an 'moov' atom which has pointers to the audio and video 'samples'. If the fragment of the mp4 file you have does not have the moov atom, your job would be much more complicated. You'd have to develop logic to examine the 'mdat' atom (which contains all the audio and video samples) and use educated guesses to find the audio and video boundaries.

Even worse, without the moov atom, you won't have the SPS and PPS needed to decode the slices. You'd have to synthesize replacements; if you know the codec used to create the MP4, then you might be able to copy the SPS and PPS from a similarly encoded file; if not, it could be a painful process of trial and error, because the syntax of the slices (the H.264 encoded pictures) is dependent upon values specified in the SPS and PPS.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文