Давай объясню. Выполни в консоли команду "ffmpeg" - тебе покажут опции, с которыми собрана программа. Если там нет --enable-nvenc, давай объяснюкак сделать на примере популярных дистрибутивов Linux Fedora, Opensuse и Debian.1). В Opensuse подожди обновления до 2.6. Если компилировали без --enable-nvenc, зайди на http://packman.links2linux.org/, скачай src.rpm пакет ffmpeg, и выполни из консоли:
su:
Пароль:
zypper si -d ffmpeg
exit
mkdir build-ffmpeg && cd build-ffmpeg
mv ~/Загрузки/ffmpeg*.src.rpm .
rpmbuild --rebuild *.src.rpm
Через 10 секунд прерви сочетанием клавиш Ctrl-C. Я мало работал с Opensuse, и я не знаю как по-умному только распаковать, не начиная сборку. Также я не знаю по какому принципу создаётся либо /usr/src/packages, либо /home/username/rpmbuild, но они оба доступны для записи для пользователя.
cd ~/rpmbuild/SPEC/
любимыйредактор ffmpeg.spec
Ищешь configure и дописываешь те два параметра, о которых тебе говорили выше.
rpmbuild -ba ffmpeg.spec
Устанавливай получившиеся RPM-пакеты. Ах да, нужно же ещё чтобы в системе была сама библиотека libnvidia-encode.so и заголовочные файлы отсюда: https://developer.nvidia.com/nvidia-video-codec-sdk Первое устанавливается вместе с драйвером NVIDIA (включая старые версии, где библиотека уже была, но ей ещё нельзя было пользоваться: я скомпилировал бету ffmpeg с драйвером 340.xx, а начал пользоваться с 346.xx). Второе устанавливается с помощью копирования файлов из include в /usr/include.
2). Инструкция для Fedora аналогична, только src.rpm брать из другого места, и установка зависимостей командой yum-builddep.
3). Debian/Ubuntu/Mint/SteamOS. Установи версию 2.6 из PPA. Проверь, собрана ли новая версия с nvenc. Если нет - давай расскажу про то, как пересобрать. Для начала открой менеджер пакетов, в настройках найди управление репозиториями, поставь галочку Source, обнови репозитории.
sudo apt-get build-dep ffmpeg
cd /home/username/
mkdir build-ffmpeg && build-ffmpeg
apt-get source ffmpeg
dpkg-source -x ffmpeg
Теперь зайди в этот каталог, открой текстовым редактором файл rules, найди configure, и добавь те два параметра, о которых тебе говорили выше. Если версия ffmpeg не 2.6, то или возьми DEB-SRC из PPA, или из Sid, или сделай автозамену, заменив везде 2.5 на 2.6. И конечно же поменяй исходный код на новый!
cd [Tab] // кнопка Tab автоматически дополнит название директории
fakeroot ./debian/rules binary
cd ..
rm -f *dbg*
sudo dpkg -i *.deb
3). Дистрибутивонезависимый вариант. Установи зависимости (команды для RPM/DEB-based дистрибутивов Linux я дал, и не забудь про драйвер NVIDIA и header-файлы).
cd /home/username
mkdir build-ffmpeg && cd build-ffmpeg
wget http://ffmpeg.org/releases/ffmpeg-2.6.tar.bz2
tar xf *
cd [Tab]
./configure --prefix=/home/username/build-ffmpeg (сюда вставь параметры, с которыми был собран твой ffmpeg, подробнее в начале этого сообщения) --enable-nvenc --enable-nonfree
make
make install (ОБЯЗАТЕЛЬНО без sudo
cd /home/username/build-ffmpeg/usr/bin
LD_LIBRARY_PATH=../lib64 ./ffmpeg
Всё. Через полдня дам команды как: 1). Стимить в твич. 2). Снимать скринкасты со сжатием h264 на GPU. 3). Сжимать несжатые видео (например скринкасты, записанные без аппаратного кодирования).