我用這個循環中,FFMPEG讀取視頻流幀讀出特定的視頻幀該幀能夠讀取特定的幀(按幀號)。它是如何完成的?使用FFMPEG API
回答
你可能想看看
int av_seek_frame(AVFormatContext *s, int stream_index, int64_t timestamp,
int flags);
以上API將尋求在給定時間戳的關鍵幀。尋求後你可以閱讀框架。另外下面的教程解釋位置和時間戳之間的轉換。
時間戳以幀爲單位測量? – 2013-04-23 07:46:40
時間戳依賴於流的time_base – Pete 2013-04-23 07:54:38
是的av_seek_frame似乎是正確的。如果您爲基於幀的seek添加整個設置,我會將您的答案標記爲正確。我發現如何在此處執行此操作stackoverflow.com/q/504792/2065121(最後一個答案),但只是爲了讓其他人看到它是如何完成的。 :) – 2013-04-23 09:17:13
由於在視頻大多數幀依賴於先前幀和下一幀,一般來說,在視頻訪問隨機幀並不簡單。然而,一些幀,獨立於任何其他幀編碼,並且在整個視頻中定期發生。這些幀被稱爲I幀。訪問這些幀是直接通過尋求。
如果你想在視頻中爲「隨機」訪問任何框架,那麼你必須:
- 尋求到前一個I幀
- 閱讀框架逐一直到你到達框架你想要的數字
你已經得到了第二點的代碼,所以你所需要做的就是照顧第一點,你就完成了。以下是人們經常提到的Dranger教程的updated version--它可能有幫助。
- 1. FFMPEG:使用FFMPEG API編碼後直接解碼數據包
- 2. 使用FFMPEG Stream H264到Android使用FFMPEG
- 3. ffmpeg爲Android(使用教程:「ffmpeg和Android.mk」)
- 4. 從.NET使用FFmpeg
- 5. 如何使用ffmpeg
- 6. 使用ffmpeg幫助
- 7. Android ffmpeg庫使用
- 8. 使用FFMPEG在Android
- 9. 使用hstack的ffmpeg
- 10. FFmpeg api iOS「資源暫時不可用」
- 11. ffmpeg C API文檔/教程
- 12. 使用ffmpeg將mp4轉換爲gif時使用ffmpeg下載fps
- 13. MP3解碼使用ffmpeg的API(標題丟失)
- 14. 使用DirectX API查看由FFMPEG解碼的h264流
- 15. 如何使用ffmpeg API轉換音頻文件?
- 16. 使用FFmpeg C API調整視頻大小
- 17. 使用avcodec_close的ffmpeg問題
- 18. ffmpeg中使用libardrone by python
- 19. 使用FFMPEG播放音頻
- 20. 使用ffmpeg的幀總數
- 21. 使用的ffmpeg和Xcode
- 22. 使用ffmpeg,PHP和beanstalk
- 23. 使用ffmpeg延遲音頻
- 24. 如何使用FFMPEG在php
- 25. 如何獲得使用FFMPEG
- 26. 使用libavcodec編碼Speex(FFMpeg)?
- 27. PHP中使用的ffmpeg
- 28. RAM-Problem使用FFmpeg-PHP
- 29. 如何使用的ffmpeg
- 30. 在Powershell中使用ffmpeg
這裏有用的答案 - http://stackoverflow.com/q/504792/2065121 – 2013-04-23 07:43:45