【问题标题】:Extract frames from uncompressed y4m video using ffmpeg使用 ffmpeg 从未压缩的 y4m 视频中提取帧
【发布时间】:2016-10-27 08:18:07
【问题描述】:

我正在尝试从大型未压缩 y4m 视频中提取小序列(64 帧)。

输入是我从 Netflix 获得的已知测试序列:https://media.xiph.org/video/derf/

由于视频是使用复制解压缩的,因此编解码器应该可以正常工作。 这是我尝试过的:

./bin/ffmpeg -ss 2.0 -i Netflix_TunnelFlag_4096x2160_60fps_10bit_420.y4m -vframes 64 -codec copy -y /tmp/test.y4m

但我收到此错误:

[yuv4mpegpipe @ 0x35f3320] ERROR: Codec not supported.
Could not write header for output file #0 (incorrect codec parameters ?): Invalid data found when processing input

我不确定这么简单的操作会出现什么问题,我认为FFMpeg应该只是复制64个I帧并将它们放入一个新容器中。

我还尝试更改容器,唯一有效的是使用 yuv 容器,但我想避免这种情况,因为那不是容器 :)

【问题讨论】:

  • 删除-codec copy
  • 谢谢!那么复制操作有什么不同呢?

标签: video ffmpeg codec


【解决方案1】:

删除-codec copy,只使用y4m的默认值(无论如何都是rawvideo到rawvideo)。

错误消息“Codec not supported”可以改进以提供更多信息。 yuv4mpegpipe 多路复用器,以及其他一些与 rawvideo 相关的多路复用器,将默认使用“wrapped_avframe”伪编码器,"avoids a costly memcpy of every single video frame" 与使用旧 API 相比。请参阅Deprecating AVPicture 了解更多信息。

tl;dr:更快。

【讨论】:

    猜你喜欢
    • 2012-04-14
    • 1970-01-01
    • 1970-01-01
    • 2014-05-28
    • 1970-01-01
    • 1970-01-01
    • 2022-01-03
    • 2014-07-02
    相关资源
    最近更新 更多