Декодирование кадра h264 с помощью декодера с аппаратным ускорением Android в gstreamerAndroid

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Гость
 Декодирование кадра h264 с помощью декодера с аппаратным ускорением Android в gstreamer

Сообщение Гость »


Я пытаюсь создать конвейер для получения потока в кодировке h264, используя gstreamer с аппаратным кодированием.
Ниже показан этот рабочий конвейер:

Код: Выделить всё

"ahcsrc ! capsfilter caps=video/x-raw,width=1280,height=720,format=YV12,framerate=30/1 "
"! videoconvert "
"! amcvidenc-c2mtkavcencoder bitrate=6000000 i-frame-interval=2 "
"! h264parse "
"! tee name=t t. ! queue "
"! splitmuxsink muxer-factory=matroskamux name=splitmuxsink "
"! openslessrc "
"! audioconvert "
"! voaacenc "
"! splitmuxsink.audio_0 t. ! queue "
"! appsink name=thumbnail-sink drop=1"
Теперь из AppSink мне нужно захватить кадр, чтобы получить изображение в формате JPEG путем декодирования этого закодированного потока. Вариант ниже для элемента appsrc работал для захвата буфера, но я не смог использовать аппаратный декодер внутри android gstreamer.

Код: Выделить всё

gchar *string = NULL;
GError *appsrcError = NULL;
string = g_strdup_printf ("appsrc name=appsrcth "
"! amcviddec-c2mtkavcdecoder "
"! identity dump=1 "
"! filesink location=/sdcard/DCIM/video/a.mp4"

);
data->thumbnail_appsrc = gst_parse_launch (string, &appsrcError);
g_free (string);

GstElement * appsrcTh = gst_bin_get_by_name (GST_BIN (data->thumbnail_appsrc), "appsrcth");
/* configure for time-based format */
g_assert(appsrcTh);
if (appsrcTh != NULL) {
g_object_set (appsrcTh, "format", GST_FORMAT_TIME, NULL);
/* uncomment the next line to block when appsrc has buffered enough */
/*g_object_set (appsrcTh, "block", TRUE, NULL);*/
g_signal_connect (appsrcTh, "need-data", G_CALLBACK (start_feed), data);
g_signal_connect (appsrcTh, "enough-data", G_CALLBACK (stop_feed), data);
}

Выдает ошибку ниже:

Код: Выделить всё

gst_video_decoder_chain: error: decoder not initialized
Может ли кто-нибудь помочь мне, как использовать аппаратный декодер Android для декодирования буфера кадров h264?
Я пытался использовать аппаратный декодер в Android gstreamer.
/>ниже указано имя элемента аппаратного декодера для gstreamer.

Код: Выделить всё

amcviddec-c2mtkavcdecoder


Источник: https://stackoverflow.com/questions/781 ... -gstreamer
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Правильное выделение области памяти и доступ к базовым аппаратным адресам
    Anonymous » » в форуме Linux
    0 Ответы
    22 Просмотры
    Последнее сообщение Anonymous
  • Управление аппаратным потоком с Termios (CRTSCTS) для устройства UART
    Anonymous » » в форуме C++
    0 Ответы
    7 Просмотры
    Последнее сообщение Anonymous
  • Конвейер GStreamer: декодирование H.264 из Appsrc в Appsink
    Anonymous » » в форуме C++
    0 Ответы
    15 Просмотры
    Последнее сообщение Anonymous
  • Конвейер GStreamer: декодирование H.264 из Appsrc в Appsink
    Anonymous » » в форуме C++
    0 Ответы
    16 Просмотры
    Последнее сообщение Anonymous
  • Почему декодирование кадра в формате *.jpeg с использованием nvJPEG добавляет такую ​​большую задержку к визуализированн
    Anonymous » » в форуме C++
    0 Ответы
    38 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Android»