2016-10-26 13 views
0

大きな非圧縮y4mビデオから小さなシーケンス(64フレーム)を取得しようとしています。ビデオはコーデックとしてコピーを使用して圧縮されていないのでhttps://media.xiph.org/video/derf/圧縮されていないy4mビデオのフレームをffmpegで抽出する

だけで動作するはずです:

入力は、私が持っているからNetflixのから試験配列が知られています。

./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

'-codec copy'を削除します。 – LordNeckbeard

+0

ありがとう!それではコピー操作は何をするのですか? – igon

答えて

1

-codec copyを外し、ただのデフォルトを使用しますy4m(とにかくrawvideoとrawvideoです)。

Codec not supported」というエラーメッセージは、より有益なものに改善される可能性があります。 yuv4mpegpipe muxerは、他のrawvideoに関連するmuxersとともに、デフォルトでは「wrapped_avframe」疑似エンコーダを使用します("avoids a costly memcpy of every single video frame")。詳細はDeprecating AVPictureを参照してください。

tl; dr:これは高速です。

関連する問題