1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/Qyerp-KKPlayer

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

KKPlayer — это видео-плеер, основанный на ffmpeg, который был перенесён на платформы Windows и Android.

Желаем активной обратной связи в нашей QQ-группе: 342276504

Для Windows версия была успешно скомпилирована с помощью Visual Studio 2008. Для Android версия была успешно скомпилирована с помощью Android Studio 1.5.

Проект состоит из следующих частей:

  • KKPlayerCore - основной код плеера;
  • KKplayer проект - пример приложения для Windows, использующий KKPlayerCore;
  • KKPlayerAndroid проект - пример приложения для Android, использующий KKPlayerCore;
  • Windows версия - официальные сборки находятся в директории release, а отладочные версии в debug. Для графического интерфейса используется библиотека SOUI2;
  • iOS версия - находится в планировании.

Для компиляции Windows версии требуется определение следующих переменных окружения:

  • KKWinSdkPath
  • KKWinDx9Path
  • KKSoui2Path

Ссылки для скачивания:

Примеры установки переменных окружения:

KKWinDx9Path=C:\Program Files (x86)\Microsoft DirectX SDK (June 2010)
KKWinSdkPath=C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A
KKSoui2Path=D:\work\Projects\soui

При компиляции проекта следует соблюдать следующий порядок:

libmfx -> zlibstat -> png -> skia -> sdl -> render -> kkplayercore -> kkui -> jsoncpp -> kkplayer

Для управления задержками RTMP потока используйте следующую конфигурацию librtmp: rtmp:xxxxxxxxxxxxxxxxxxxxxx.

Необходимо добавить следующие объявления функций в файл avcodec.h:

int av_get_format(AVCodecContext *avctx, const enum AVPixelFormat *fmt);
int av_get_buffer(AVCodecContext *avctx, AVFrame *frame, int flags);
```Реализация этих функций должна быть выполнена в файле `utils.c`:
```c
int av_get_format(AVCodecContext *avctx, const enum AVPixelFormat *fmt) {
    return ff_get_format(avctx, fmt);
}

int av_get_buffer(AVCodecContext *avctx, AVFrame *frame, int flags) {
    return ff_get_buffer(avctx, frame, flags);
}

Для успешной компиляции FFmpeg версии 3.0 и выше на Android, если использовать незаполненные конфигурационные файлы, то полученный .so файл будет иметь имя типа libavcodec.so.55.39.101, где номер версии указан после имени файла. Это может вызвать проблемы при загрузке на Android устройствах.Поэтому следует заменить следующие строки в файле configure:

SLIBNAME_WITH_MAJOR='$(SLIBNAME).$(LIBMAJOR)'
LIB_INSTALL_EXTRA_CMD='$$(RANLIB)"$(LIBDIR)/$(LIBNAME)"'
SLIB_INSTALL_NAME='$(SLIBNAME_WITH_VERSION)'
SLIB_INSTALL_LINKS='$(SLIBNAME_WITH_MAJOR)$(SLIBNAME)'

на:

SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(FULLNAME)-$(LIBMAJOR)$(SLIBSUF)'
LIB_INSTALL_EXTRA_CMD='$$(RANLIB)"$(LIBDIR)/$(LIBNAME)"'
SLIB_INSTALL_NAME='$(SLIBNAME_WITH_MAJOR)'
SLIB_INSTALL_LINKS='$(SLIBNAME)'

Шаблон скрипта bash:

#!/bin/bash
export TMPDIR=/home/ubuntu64/FFmpeg/Tmep
NDK=/home/ubuntu64/FFmpeg/android-ndk-r10
SYSROOT=$NDK/platforms/android-9/arch-arm/
TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64

function build_one {
    ./configure \
        --prefix=/home/ubuntu64/FFmpeg/ff3.1.2Jni \
        --enable-shared \
        --disable-static \
        --disable-doc \
        --disable-ffserver \
        --enable-cross-compile \
        --cross-prefix=$TOOLCHAIN/bin/arm-linux-androideabi- \
        --target-os=linux \
        --arch=arm \
        --disable-encoders \
        --sysroot=$SYSROOT \
        --extra-cflags="-Os -fpic $ADDI_CFLAGS" \
        --extra-ldflags="$ADDI_LDFLAGS" \
        --enable-protocol=rtmp \
        $ADDITIONAL_CONFIGURE_FLAG
}

CPU=arm
PREFIX=$(pwd)/android/$CPU
ADDI_CFLAGS="-marm"
build_one

# windowVc(Vs2010) компилирование ffmpeg (https://ffmpeg.org/platform.html#Microsoft-Visual-C_002b_002b-or-Intel-C_002b_002b-Compiler-for-Windows)
# 3.3: ./configure строки 3580 изменены на:
if [ -z "$cl_major_ver" ] || [ $cl_major_ver -ge 18 ]; then
    cc_default="cl"
else
    cc_default="c99wrap cl"
fi
cc_default="c99wrap cl"

# Пример (включить shared библиотеки, отключить все кодеки):
# 3.4: ./configure строки 3774 изменены на:
cl_major_ver=$(cl 2>&1 | sed -n 's/. *Version \([[:digit:]]\{1,\}\)\. . */\1/p')
if [ -z "$cl_major_ver" ] || [ $cl_major_ver -ge 18 ]; then
    cc_default="cl"
    cxx_default="cl"
else
    cc_default="c99wrap cl"
    cxx_default="c99wrap cl"
fi
cc_default="c99wrap cl"
cxx_default="c99wrap cl"

./configure --toolchain=msvc --extra-cflags='-IC:/msinttypes' --prefix='./ffmpegBin' --incdir='./ffmpegBin/incdir' --enable-shared --disable-doc --disable-programs --disable-ffplay --disable-ffprobe --disable-ffserver
```Обновление лога:

2017-5-23  
Удаление srslibrtmpplugin. Добавление librtmpplugin  
Поддержка разделённого видео (как в Youku)  
Интеграция FFmpeg mediacode декодера. Декодирование видео в формате intermediate h264  
Обновление ffmpeg до версии 3.3.2  

2017-5-30   
Добавлено использование библиотеки libkkplayer в Windows. Поддержка рендера без окон duis, а также рендера с использованием окна.  
Изменено создание нескольких одновременно работающих аудиорендеров через SDL1.  
Устранены некоторые ошибки рендера.  

2017-7-14   
Библиотека libkkplayer в Windows была модифицирована, добавлены новые интерфейсы.  
Оптимизация рендера D3D9 4K, исправлена декодировка QSV 265.  
Добавлены новые интерфейсы в Android.  

2017-10-20  
Исправлены небольшие ошибки в графическом интерфейсе Windows.  

2017-11-29  
Используется новая версия API ffmpeg для декодирования аудио и видео.  
Библиотека ffmpeg обновлена до версии 3.4.  
Создан новый раздел библиотеки kkplayer версии 1.1.0.

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

**Основанный на ffmpeg открытый проигрыватель.** Развернуть Свернуть
MIT
Отмена

Обновления (2)

все

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/Qyerp-KKPlayer.git
git@api.gitlife.ru:oschina-mirror/Qyerp-KKPlayer.git
oschina-mirror
Qyerp-KKPlayer
Qyerp-KKPlayer
master