使用ffmpeg

时间:2016-10-26 21:43:04

标签: video ffmpeg codec

我试图从一个未经压缩的大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容器但是我想避免这种情况,因为那不是容器:)

1 个答案:

答案 0 :(得分:1)

删除-codec copy,只使用y4m的默认设置(无论如何都是原始视频)。

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

tl; dr:它更快。