Рейтинг:9

Самый безопасный способ установить последнюю стабильную версию ffmpeg (> = 4.3) на Ubuntu 20.04 (ppa не работает)?

флаг mx

я пытаюсь использовать ffmkv, для которого требуется версия ffmpeg, поддерживающая zscale.

В их README говорится, что это значение по умолчанию для 18.04, но моя версия для 20.04 — 4.2.4-1ubuntu0.1, которая, похоже, не включает поддержку zscale.

Если я побегу apt-get установить ffmpeg, это говорит ffmpeg уже является самой новой версией (7:4.2.4-1ubuntu0.1). но из ffmpeg.org ясно, что текущая стабильная версия 4.3.2-0.

я пытался добавить ppa: jonathonf/ffmpeg-4 чтобы получить последнюю версию, но она не обновляется ("нет файла выпуска").

Какой самый безопасный способ обновить его? В идеале, есть PPA, который будет работать, но мой поиск в гугле не всплыл. Или я должен скачать это ffmpeg_4.3.2-0+deb11u2ubuntu1_amd64.deb файл и установить его с помощью dpkg?

Я всегда параноидально отношусь к установке чего-либо по сторонним каналам, особенно когда это связано с видео. Какой лучший способ «не сломать будущие системные обновления APT» для установки текущего стабильного ffmpeg?

marcelm avatar
флаг cn
_ «Их README говорит, что это значение по умолчанию в 18.04, но ..."_ - На самом деле, [в этом файле readme] (https://github.com/Fmstrat/ffmkv#readme) говорится, что поддержка zscale _не_ поддерживается в 18.04 по умолчанию. (что имеет смысл, так как [поддержка zscale — это новая функция ffmpeg 4.3.1](https://ko-fi.com/post/FFmpeg-4-3-1-available-now-with-zscale-support- R6R52I7J7)).
флаг mx
@marcelm, о, ВАУ, это так туманно сказано! С таким же успехом это можно интерпретировать и по-другому. :)
флаг in
Это относится только к этому ppa. FFmpeg добавил zscale в 3.0
Рейтинг:6
флаг zw

: это сделано так, что никто не может работать с системой. Если вы являетесь администратором системы, вы несете ответственность, так что да, вы должны один раз побеспокоить своих нетехнических пользователей, чтобы предоставить им разрешения, которые вы считаете уместными.DBAN представляет собой ISO-образ только для MBR и, как таковой, НЕ имеет загрузочного режима UEFI — он довольно старый, хотя все еще работает, и в нем нет параметра загрузки UEFI. Вы можете переключиться на MBR в BIOS/системе, запустить DBAN, а затем снова переключиться на UEFI. Данные по-прежнему исчезнут на диске.Однако у меня может быть

альтернатива ДБАН
, если вам интересно: используйте установочный / Live USB-диск Ubuntu в качестве основы, а затем используйте инструменты в Linux уже для очистки диска.
Вместо того, чтобы записывать DBAN на USB, есть инструменты, которые вы можете использовать уже в Linux и с легкостью стирать данные, как это делает DBAN. Оба предложенных здесь варианта начинаются с записи Ubuntu 18.04 или 20.04 Desktop LiveUSB на диск вместо этого (рекомендуется 20.04). Перезагрузитесь на этот диск.
Затем откройте терминал в LiveUSB и запустите

судо фдиск -л и найдите нужный жесткий диск. Он должен иметь/dev/sdX индикатор типа (где X — буква) илиnvmeXnY

(где X — число, Y — число).По умолчанию пользователи имеют полный доступ только к своей домашней папке. Им должен быть предоставлен доступ лицом, управляющим системой, чтобы писать в другом месте. Файловые системы, не поддерживающие права доступа к файлам Linux, действительно монтируются с полными правами для пользователя, который вставляет диск.Попросите системного администратора один раз предоставить разрешения для папки на этом диске ext4, и пользователь сможет использовать эти папки. Если пользователь единственный, кто использует этот диск, вы можете предоставить разрешения на точку монтирования. Даже если точка монтирования удаляется после извлечения диска, настройки разрешений сохраняются., .

флаг mx
Спасибо, кажется, это работает отлично!
флаг mx
э-э-э - после обновления ffmpeg я только что заметил, что он сломал KDEnlive - теперь он не может отображать в mp4 ("Неподдерживаемый видеокодек: libx264"). Нужно ли устанавливать какие-либо другие библиотеки?
N0rbert avatar
флаг zw
Это зависит от того, как был установлен KDEnlive.
флаг mx
Это выяснено; похоже, что MLT необходимо обновить. Я только что добавил kdenlive PPA и обновил его версию, и теперь все работает.
Рейтинг:5
флаг jp

Простое решение

  1. Загрузите уже скомпилированный ffmpeg от johnvansickle.com. включена поддержка zscale.
  2. Поместите скачанный ffmpeg в твой ДОРОЖКА путем перемещения загруженного ffmpeg в /USR/местные/бен или же ~/бен (перезарегистрируйтесь или запустите источник ~/.профиль если вы переместите его в ~/бен).

Это не повлияет на какие-либо системные файлы или другие пакеты. Для удаления просто удалите ffmpeg файл.

Я не большой поклонник PPA. Они могут быть грязными, часто излишними и может вызвать проблемы путем вмешательства в систему управления пакетами.

флаг us
Это не легко ремонтировать, но это, безусловно, быстрое и приятное решение. Спасибо!
Avatar avatar
флаг ph
Я скачал `ffmpeg-release-amd64-static.tar.xz`, извлек сборку в новую папку `ffmpeg` и загрузил папку в `/usr/local/bin/ffmpeg`. Теперь при попытке запустить ffmpeg с помощью `/usr/local/bin/ffmpeg/ffmpeg` я получаю `Отказано в доступе`. Если я попробую «sudo /usr/local/bin/ffmpeg/ffmpeg», я получу «команда не найдена». Как запустить ffmpeg?
Avatar avatar
флаг ph
Все заработало Просто нужно было изменить разрешение исполняемого файла `ffmpeg` на `744`.
Avatar avatar
флаг ph
Если вы используете ffmpeg с PHP и `shell_exec(ffmpeg...)`, вам нужно использовать права доступа к файлам `777`.
Рейтинг:2
флаг in

Возможно, лучший способ получить копию FFmpeg и фильтр zscale — использовать но немного изменить, отличная дорожка FFmpeg руководство по компиляции. Это руководство будет нет вмешиваться в системные библиотеки.

Это можно сделать всего за два простых шага:

1. Установите зимг:

При установке длинного списка зависимостей в руководстве добавьте следующее в также установить изображение:

   mkdir -p ~/ffmpeg_sources && \
   cd ~/ffmpeg_sources && \
   wget https://github.com/sekrit-twc/zimg/archive/refs/tags/release-3.0.2.tar.gz && \
   tar xvf-релиз-3.0.2.tar.gz && \
   cd zimg-релиз-3.0.2 && \
   ./autogen.sh && \
   ./configure --prefix="$HOME/ffmpeg_build" --disable-shared && \
   делать && \
   сделать установку

Это устанавливает локальную копию Зимг который FFmpeg подхватит при компиляции.

2. Скомпилируйте FFmpeg:

Следите за полным Руководство по трассировке FFmpeg и когда вы дойдете до раздела, где скомпилирован FFmpeg, просто добавьте следующее в ./настроить нить:

   --enable-libzimg

И этого будет достаточно, чтобы включить фильтр zscale.

3. Тестирование, тестирование...

Сам FFmpeg можно проверить на наличие фильтра zscale:

andrew@ithaca:~$ ffmpeg -filters 2> /dev/null |grep zscale
 ..C zscale V->V Применение изменения размера, цветового пространства и преобразования битовой глубины.
Эндрю@итака:~$ 

я тестировал ffmkv сам с большим апскейлом по размеру:

andrew@ithaca:~$ ffmkv --preset 'До 4K, оригинальный звук, 4 ГБ в час VBR, HDR' input.mkv output.mkv
Аудио — Stream Copy VBR, размер файла будет больше расчетного.
Обработка 1-го прохода видео VBR, оставшееся время — это оставшееся время только для 1-го прохода.
Процесс будет загружен на 100%, пока ffmpeg закроет функции.
Преобразование input.mkv в ffmpeg началось 30.08.21 19:53:05
input.mkv имеет 1248 кадров, сейчас конвертирует
ffmpeg: 1253 из 1248 кадров при 24 кадрах в секунду, прогресс: 100% и ETA: 0ч 0м 0с     
ffmpeg остановлен 30.08.21 19:54:06

Обработка 2-го прохода видео VBR, оставшееся время равно общему оставшемуся времени.
Процесс будет загружен на 100%, пока ffmpeg закроет функции.
Преобразование input.mkv в ffmpeg началось 30.08.21 19:54:06
input.mkv имеет 1248 кадров, сейчас конвертирует
ffmpeg: 1253 из 1248 кадров при 23 кадрах в секунду, прогресс: 100% и ETA: 0ч 0м 0с     
ffmpeg остановлен 30.08.21 19:55:06
Эндрю@итака:~$ 

И все хорошо :)

Рейтинг:2
флаг ru

Существует snap-пакет для ffmpeg. Текущая версия в "стабильном" канале - 4.3.1, но не указана --enable-zimg в своей конфигурации сборки, как напечатано с -версия, так что это может не сработать. Однако «пограничный» канал этого пакета моментальных снимков содержит версию, основанную на ffmpeg 4.4 с --enable-zimg. Таким образом, установка будет так же проста, как

моментальная установка ffmpeg --channel edge
Рейтинг:0
флаг us

Добавление внешних PPA очень рискованно и часто может вызвать проблемы с вашей текущей установкой.

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

Сначала мы загрузим последнюю статическую сборку gpl с одного из официальные строители BtbN. Затем мы извлечем файл в /USR/местные/ffmpeg и создать Символические ссылки к двоичным файлам в /USR/бен каталог.

Это ручной процесс установки. Вы можете создать скрипт, выполнив все шаги, упомянутые здесь:

1. Удалите предыдущий пакет, установленный с помощью apt

sudo apt удалить --purge --auto-remove -y ffmpeg

2. Создайте временный каталог и перейдите в него

mkdir -vp ~/tmp
компакт-диск ~/tmp

3. Получите имя файла и версию

## Определяем имя репозитория
REPO_NAME='BtbN/FFmpeg-Builds'

## Определите URL последней версии
LR_URL="https://api.github.com/repos/${REPO_NAME}/releases/latest"

## Получить последнюю версию
версия=$(curl -s "${LR_URL}" \
| grep -m 1 ffmpeg-n \
| вырезать -d ':' -f2 \
| вырезать -d '-' -f2 \
| тр -д 'н' \
| { читать v; эхо ${v::-2}; })

## Получить имя файла
dl_filename=$(curl -s "${LR_URL}" \
| grep "имя.*linux64-gpl-${версия}.tar.xz" \
| вырезать -d ':' -f2 \
| { читать н; эхо ${n:1:-2}; })

dl_name="${dl_filename::-7}"

4. Загрузите файл

## Загрузите последнюю версию tar.xz
curl -s "${LR_URL}" \
| grep "browser_download_url.*linux64-gpl-${версия}.tar.xz" \
| вырезать -d ':' -f 2,3 \
| тр -д '"' \
| wget -qi - -O $dl_filename

5. Определите пути установки пакетов

pkg_path='/usr/local/ffmpeg'
pkg_lib_path='/usr/lib/ffmpeg'

6. Извлеките и установите загруженную версию

sudo rm -rf $pkg_path && tar -xvf $dl_filename
sudo mv -v $dl_name $pkg_path

7. Добавьте двоичные файлы в системные двоичные каталоги и каталоги библиотек.

sudo ln -sv "${pkg_path}" "${pkg_lib_path}"
sudo ln -sv "${pkg_lib_path}/bin/ffmpeg" '/usr/bin/ffmpeg'
sudo ln -sv "${pkg_lib_path}/bin/ffplay" '/usr/bin/ffplay'
sudo ln -sv "${pkg_lib_path}/bin/ffprobe" '/usr/bin/ffprobe'

8. Протестируйте новую версию.

ffmpeg-версия | grep 'версия ffmpeg'

Теперь вы можете создать скрипт с именем ffmpeg-install-latest.sh:

#!/бин/баш

## Определить имя пакета
PKG_NAME='ffmpeg'

## Определить локальный системный путь
LOCAL_PATH='/usr/локальный'

## Определяем путь к системной библиотеке
LIB_PATH='/usr/lib'

## Определить системный двоичный путь
BIN_PATH='/usr/bin'

## Определить домашний каталог пользователя
USER_HOME_DIR=$(получить пароль ${SUDO_USER:-$USER} | вырезать -d: -f6)

## Определяем имя репозитория
REPO_NAME='BtbN/FFmpeg-Builds'

## Определить версии URL
RELEASES_URL="https://api.github.com/repos/${REPO_NAME}/релизы"

## Определить URL последней версии
## LR_URL="https://api.github.com/repos/${REPO_NAME}/releases/latest"
LR_URL="${RELEASES_URL}/последняя"

## Определить временный каталог
TMP_DIR='tmp'

## Перейти во временную директорию
tmp_path="${USER_HOME_DIR}/${TMP_DIR}"
mkdir -vp $tmp_path
cd $tmp_path

## Получите последнюю версию и соберите
полная_версия=$(curl -s "${LR_URL}" \
| grep -m 1 ffmpeg-n \
| вырезать -d ':' -f2 \
| вырезать -d '-' -f2 \
| тр -д 'н')

версия = "${полная_версия::-2}"
сборка = "${полная_версия:4:1}"

echo 'Последняя версия: '$full_version

## Получить имя файла
dl_filename=$(curl -s "${LR_URL}" \
| grep "имя.*linux64-gpl-${версия}.tar.xz" \
| вырезать -d ':' -f2 \
| { читать н; эхо ${n:1:-2}; })

dl_name="${dl_filename::-7}"

echo 'Файл для загрузки: '$dl_filename

## Загрузите последнюю версию
## Основано на: echo $(curl -s "${LR_URL}"" | grep "browser_download_url.*ffmpeg-n4\.4\.1.*linux64-gpl-4\.4\.tar.xz" | вырезать -d ':' -f 2,3 | tr -d '"')
curl -s "${LR_URL}" \
| grep "browser_download_url.*linux64-gpl-${версия}.tar.xz" \
| вырезать -d ':' -f 2,3 \
| тр -д '"' \
| wget -qi - -O $dl_filename

## Удалить предыдущий пакет, установленный с помощью apt
status="$(dpkg-query -W --showformat='${db:Status-Status}' ${PKG_NAME} 2>&1)"
если [$? = 0 ] || [ "${status}" = установлено]; тогда
  sudo apt remove --purge --auto-remove -y "${PKG_NAME}"
фи

## Определяем пути установки пакетов
pkg_path="${LOCAL_PATH}/${PKG_NAME}"
pkg_lib_path="${LIB_PATH}/${PKG_NAME}"

## Извлеките и установите загруженную версию
sudo rm -rf $pkg_path && tar -xvf $dl_filename
sudo mv -v $dl_name $pkg_path

## Добавляем бинарные файлы в системные каталоги бинарников и библиотек
sudo ln -sv "${pkg_path}" "${pkg_lib_path}"
sudo ln -sv "${pkg_lib_path}/bin/ffmpeg" "${BIN_PATH}/ffmpeg"
sudo ln -sv "${pkg_lib_path}/bin/ffplay" "${BIN_PATH}/ffplay"
sudo ln -sv "${pkg_lib_path}/bin/ffprobe" "${BIN_PATH}/ffprobe"

## Протестируйте новую версию.
ffmpeg-версия | grep 'версия ffmpeg'

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.