У меня вопрос, как эти вещи связаны и что они конкретно делают.
К вашему сведению, у меня есть небольшой опыт работы с видеоплеером, кодированием и декодированием.
В своей работе я занимаюсь потоковой передачей udp с сервера, беру ее с помощью ffmpeg, декодирую и рисую с помощью openGL. А также использование ffmpeg для видеоплеера.
Вот вопросы...
<сильный>1. Только ffmpeg может декодировать потоковую передачу UDP (закодированную с помощью ffmpeg с сервера) или нет?
Я нашел полезную информацию о videotoolbox, который может декодировать потоковую передачу с аппаратным ускорением в iOS. так что могу ли я также декодировать потоковую передачу с сервера с помощью videotoolbox?
<сильный>2. Если можно декодировать с помощью videotoolbox (я имею в виду, может ли videotoolbox заменить ffmpeg), то каков исходный код videotoolbox в ffmpeg? зачем он там?
В моем декодере я создаю AVCodecContext из потоковой передачи, и у него есть поля hwaccel и hwaccel_context, которые устанавливают для них значение null. Я думал, что этот videotoolbox — это своего рода API, который может помочь ffmpeg использовать hwaccel для iOS. Но пока это выглядит не так...
<сильный>3. Если videotoolbox может декодировать потоковую передачу, декодирует ли он также H264 в локальном режиме? или возможна только потоковая передача?
AVPlayer — хороший инструмент для воспроизведения видео, но если videotoolbox может заменить этот AVPlayer, то какая от него польза? или невозможно?
<сильный>4. FFmpeg использует только CPU для декодирования (программный декодер) или hwaccel тоже?
Когда я воспроизводю видео с помощью проигрывателя ffmpeg, загрузка ЦП превышает 100%. Означает ли это, что этот ffmpeg использует только программный декодер? или есть способ использовать hwaccel?
Пожалуйста, поймите мой плохой английский, и любой ответ будет оценен.
Спасибо.