Получить обложку альбома с помощью FFmpegAndroid

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Гость
 Получить обложку альбома с помощью FFmpeg

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


Я разрабатываю приложение для Android, которое использует FFmpeg для получения метаданных аудио. Я знаю, что можно программно получить обложку альбома с помощью FFMpeg. Однако после декодирования изображения (видеокадра в формате MP3) как сгенерировать файл изображения (PNG) для использования в приложении? Я обыскал все, но не нашел работающего примера.

Изменить, вот решение:

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

#include 
#include 

void retrieve_album_art(const char *path, const char *album_art_file) {
int i, ret = 0;

if (!path) {
printf("Path is NULL\n");
return;
}

AVFormatContext *pFormatCtx = avformat_alloc_context();

printf("Opening %s\n", path);

// open the specified path
if (avformat_open_input(&pFormatCtx, path, NULL, NULL) != 0) {
printf("avformat_open_input() failed");
goto fail;
}

// read the format headers
if (pFormatCtx->iformat->read_header(pFormatCtx) < 0) {
printf("could not read the format header\n");
goto fail;
}

// find the first attached picture, if available
for (i = 0; i < pFormatCtx->nb_streams; i++)
if (pFormatCtx->streams[i]->disposition & AV_DISPOSITION_ATTACHED_PIC) {
AVPacket pkt = pFormatCtx->streams[i]->attached_pic;
FILE* album_art = fopen(album_art_file, "wb");
ret = fwrite(pkt.data, pkt.size, 1, album_art);
fclose(album_art);
av_free_packet(&pkt);
break;
}

if (ret) {
printf("Wrote album art to %s\n", album_art_file);
}

fail:
av_free(pFormatCtx);
// this line crashes for some reason...
//avformat_free_context(pFormatCtx);
}

int main() {
avformat_network_init();
av_register_all();

const char *path = "some url";
const char *album_art_file = "some path";

retrieve_album_art(path, album_art_file);

return 0;
}


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

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • У меня есть проблема с моим аудиокодиком FFMPEG FFMPEG FFMPEG
    Anonymous » » в форуме C++
    0 Ответы
    27 Просмотры
    Последнее сообщение Anonymous
  • Я пытаюсь создать приложение, в котором оно будет генерировать случайную видеоигру и показывать обложку игры при ее созд
    Anonymous » » в форуме CSS
    0 Ответы
    16 Просмотры
    Последнее сообщение Anonymous
  • Отключить обложку в Autodesk Maya
    Anonymous » » в форуме Python
    0 Ответы
    12 Просмотры
    Последнее сообщение Anonymous
  • Отключить обложку в Autodesk Maya
    Anonymous » » в форуме Python
    0 Ответы
    7 Просмотры
    Последнее сообщение Anonymous
  • Как я могу получить обложку файла mp3?
    Anonymous » » в форуме Jquery
    0 Ответы
    9 Просмотры
    Последнее сообщение Anonymous

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