Это возможно ... , если вы можете принять конечный результат, представляющий собой FLV-файл в один кадр (а не правильное изображение, такое как PNG или JPEG.) Что такое однокадровое видео, на самом деле? Это изображение! Это вполне может дать вам функциональность, которую вы ищете, хотя это может показаться немного странным.
Что вам нужно сделать, это проанализировать FLV-файл. На самом деле это очень простой формат. Для начала ознакомьтесь с некоторыми основными условиями сжатия видео . Во-вторых, прочтите спецификацию FLV File Format на сайте Adobe.
Примерно, пример FLV-файла будет выглядеть так:
'FLV' header
Meta data
Frame 0 - Audio
Frame 1 - Video I-Frame (all information to create a full image)
Frame 2 - Video P-Frame (just differential from last frame)
Frame 3 - Video P-Frame (just differential from last frame)
Frame 1 - Video I-Frame (all information to create a full image)
Frame 2 - Video P-Frame (just differential from last frame)
Frame 3 - Video P-Frame (just differential from last frame)
Frame 0 - Audio
Frame 5
...
Frame n
EOF
Итак, вы будете искать нужный вам I-кадр видео в качестве картинки. Это вместе с базовым заголовком FLV-файла - все, что вам нужно. Наш вывод (будь то сокет или файл) будет просто:
'FLV' header
Frame 0 - Video I-Frame (all information to create a full image)
Все это можно сделать на Java без каких-либо специальных инструментов. Я сделал это сам. Реально.
Обратите внимание, что этот подход применяется только к файлам FLV, а не к F4V (или другим форматам файлов на основе MP4.)