2016-10-26 89 views
0

我試圖從大的未壓縮的y4m視頻中獲取小序列(64幀)。使用ffmpeg從未壓縮的y4m視頻中提取幀

的輸入被稱爲來自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

刪除'-codec copy'。 – LordNeckbeard

+0

謝謝!那麼複製操作又有什麼不同呢? – igon

回答

1

刪除-codec copy,並且只使用默認值y4m(無論如何,它是rawvideo的原始視頻)。

可以改進錯誤「Codec not supported」消息以提供更多信息。 yuv4mpegpipe複用器,以及其他一些原始視頻相關複用器,默認情況下將使用「wrapped_avframe」僞編碼器,其中"avoids a costly memcpy of every single video frame"與使用舊API進行比較。有關更多信息,請參閱Deprecating AVPicture

tl; dr:更快。