LINUX.ORG.RU

[В гугле забанили] Примеры кодирования в theora


0

0

Никак не могу найти примеры кодирования видео в ogg/theora на С. Хочу использовать потенциал HTML5 и вместо передачи потока jpeg'ов передавать кодированное theora видео (с использованием тега <video>). Нужно это для удаленного видеомониторинга.

Если кто сталкивался с такой задачей - подскажите, пожалуйста. А то голые мануалы можно до потери пульса читать, а выдирать из какого-нибудь ffmpeg'а тоже проблематично (как поиск иголки в стоге сена).

☆☆☆☆☆

Ответ на: комментарий от GArik

Не совсем то, что надо. Там декодируют видео, а у меня на входе - unsigned char** картинки, на выходе надо ogg. И что-то «многобукаф», например, у меня функция кодирования в jpeg совсем небольшая:

// Преобразование изображения в jpeg (~11 мс полный кадр)
void stream_jpeg(FILE *fp, char *data, int width, int height, int jpeg_quality){
        struct jpeg_compress_struct cinfo;
        struct jpeg_error_mgr jerr;
        int i,nc;
        unsigned char *line = data;
        if(jpeg_quality<10 || jpeg_quality>100) jpeg_quality = JPEG_QUALITY;
        nc = 1;
        cinfo.err = jpeg_std_error(&jerr);
        jpeg_create_compress(&cinfo);
        jpeg_stdio_dest(&cinfo, fp);
        cinfo.image_width = width;
        cinfo.image_height = height;
        cinfo.input_components = nc;
        cinfo.in_color_space = JCS_GRAYSCALE;
        jpeg_set_defaults(&cinfo);
        cinfo.JFIF_major_version = 1;
        cinfo.JFIF_minor_version = 2;
        jpeg_start_compress(&cinfo, TRUE);
        for (i = 0, line = data; i < height; i++, line += width*nc)
                jpeg_write_scanlines(&cinfo, &line, 1);
        jpeg_finish_compress(&(cinfo));

}
Если же использовать https://trac.xiph.org/browser/trunk/theora/examples/encoder_example.c, придется сильно ограничивать скорость потока (и так jpeg-сжатия 11мс занимает).

Eddy_Em ☆☆☆☆☆
() автор топика

Позвонил в саппорт гугла. Попросил чтобы тебя разбанили. Сказали что через час заработает. И да, попросили ребутнуть комьютер.

tia
()
Ответ на: комментарий от GArik

Если картинки, то значит это: https://trac.xiph.org/browser/trunk/theora/examples/png2theora.c

О, это ближе к делу. Спасибо. И кода поменьше (с учетом того, что процентов 70 можно смело выбросить). Останется только разобраться с черно-белыми изображениями (в исходнике - обработка цветных).

Eddy_Em ☆☆☆☆☆
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.