Я пытаюсь извлечь необработанные потоки с устройств и файлов с помощью ffmpeg. Я замечаю важную информацию о кадре (видео: ширина, высота, формат пикселей, цветовое пространство, формат аудио: образец) сохраняется как в AVCodecContext, так и в AVFrame. Это означает, что я могу получить доступ к нему до начала воспроизведения потока, и я могу получить к нему доступ для каждого кадра.API FFMPEG - насколько изменяются параметры потока в кадре?
Сколько я должен учитывать эти значения, изменяя рамки в кадре? Я нашел https://ffmpeg.org/doxygen/trunk/demuxing__decoding_8c_source.html#l00081, который указывает, что по крайней мере формат ширины, высоты и пикселя может изменить рамку на кадр.
- Будет ли цветовое пространство и формат выборки также сменяться рамкой?
- Будут ли эти изменения временными (один кадр) или длительными (значительным блоком кадров) и есть ли способ предсказать для этого потока, какое поведение произойдет?
- Есть ли способ найти наиболее описательные атрибуты, которые этот поток можно создать, чтобы я мог масштабировать все низкокачественные кадры вверх, но не предлагать результат, который бездумно более качественный, чем источник, даже если это устройство или сетевой поток, где я не могу воспроизвести все кадры заранее?
Основополагающий вопрос: как я могу разрешить гибкость этого API с ограничением того, что необработанные потоки (мой вывод) не имеют способа указать изменение атрибутов потока потока в середине потока. Я предполагаю, что мне нужно будет либо предсказать наиболее описательные атрибуты, чтобы дать поток, либо предложить новый поток при изменении атрибутов. Какой выбор сделать, зависит от того, будут ли эти значения быстро изменяться или оставаться относительно стабильными.
Не задавайте вопросы с тегами [tag: c] или [tag: C++], не ссылаясь на код, который у вас есть. Благодарю. –
Спасибо за уведомление. – kacey