Puncte:9

Cel mai sigur mod de a instala cel mai recent ffmpeg stabil (>= 4.3) pe Ubuntu 20.04 (ppa nu funcționează)?

drapel mx

Încerc să folosesc ffmkv, care necesită o versiune de ffmpeg care acceptă zscale.

README-ul lor spune că acesta este implicit sub 18.04, dar versiunea mea sub 20.04 este 4.2.4-1ubuntu0.1, care nu pare să includă suport zscale.

Dacă fug apt-get install ffmpeg, se spune ffmpeg este deja cea mai nouă versiune (7:4.2.4-1ubuntu0.1). dar este clar de la ffmpeg.org că versiunea stabilă actuală este 4.3.2-0.

Am incercat sa adaug ppa:jonathonf/ffmpeg-4 pentru a prelua cea mai recentă, dar aceasta nu se actualizează („nu are un fișier de lansare”).

Care este cel mai sigur mod de a-l actualiza? În mod ideal, există un PPA care să funcționeze, pe care căutarea mea pe google nu a apărut. Sau, ar trebui să descarc asta ffmpeg_4.3.2-0+deb11u2ubuntu1_amd64.deb fișier și instalarea acestuia cu dpkg?

Sunt întotdeauna paranoic în privința instalării pe canale laterale, mai ales când implică ceva de-a face cu Video. Care este cel mai bun mod „nu se va întrerupe actualizările viitoare ale sistemului APT” de a instala actualul ffmpeg stabil?

marcelm avatar
drapel cn
_"Readme-ul lor spune că acesta este implicit sub 18.04, dar..."_ - De fapt, [actul readme](https://github.com/Fmstrat/ffmkv#readme) spune că suportul zscale _nu_ este acceptat implicit în 18.04 (ceea ce are sens, deoarece [suportul zscale este o nouă caracteristică a ffmpeg 4.3.1](https://ko-fi.com/post/FFmpeg-4-3-1-available-now-with-zscale-support- R6R52I7J7)).
drapel mx
@marcelm oh WOW, asta e atât de nebulos! Acest lucru poate fi interpretat la fel de ușor și în alt mod. :)
drapel in
Asta se aplică doar pentru acel ppa. FFmpeg a adăugat zscale în 3.0
Puncte:6
drapel zw

Există și alte PPA-uri cu ffmpeg mai nou. Cel mai recent este FFmpeg 4 - instrument media (Xenial și mai nou) de la Rob Savory. Pentru a adăuga acest PPA la sistemul dvs., utilizați comenzile de mai jos:

sudo add-apt-repository ppa:savoury1/ffmpeg4
sudo apt-get update
sudo apt-get install ffmpeg

Ca rezultat, veți obține versiunea cu --enable-libzimg compila steag și ffmkv nu se va plânge de „conversia HDR în SDR sau modificări de rezoluție”.

Notă: poți caută PPA-uri singur folosind aplicația locală specială numită Y Manager PPA, .

drapel mx
Mulțumesc, se pare că funcționează grozav!
drapel mx
uh-oh - după ce am actualizat ffmpeg, doar observ că s-a stricat KDEnlive - acum nu se poate randa în mp4 ("Codec video neacceptat: libx264"). Trebuie să instalez alte biblioteci?
N0rbert avatar
drapel zw
Depinde de cum a fost instalat KDEnlive.
drapel mx
S-a dat seama; se pare că MLT trebuia actualizat. Tocmai am adăugat PPA-ul kdenlive și i-am actualizat versiunea, iar acum totul pare să funcționeze
Puncte:5
drapel jp

Soluție simplă

  1. Descărcați un deja compilat ffmpeg din johnvansickle.com. Suportul zscale este inclus.
  2. Plasați fișierul descărcat ffmpeg în tine CALE prin mutarea celor descărcate ffmpeg în /usr/local/bin sau ~/bin (reconectați-vă sau rulați sursa ~/.profile dacă îl muți în ~/bin).

Acest lucru nu va interfera cu niciun fișier de sistem sau alte pachete. Pentru a dezinstala pur și simplu ștergeți ffmpeg fişier.

Nu sunt un mare fan al PPA-urilor. Ele pot fi dezordonate, sunt adesea exagerate și poate cauza probleme prin interferarea cu sistemul de management al pachetelor.

drapel us
Nu este ușor de întreținut, dar este cu siguranță o soluție rapidă și bună. Mulțumiri!
Avatar avatar
drapel ph
Am descărcat `ffmpeg-release-amd64-static.tar.xz`, am extras versiunea într-un nou folder `ffmpeg` și am încărcat folderul în `/usr/local/bin/ffmpeg`. Acum, când încerc să pornesc ffmpeg cu `/usr/local/bin/ffmpeg/ffmpeg`, primesc `Permission denied`. Dacă încerc `sudo /usr/local/bin/ffmpeg/ffmpeg`, primesc `command not found`. Cum se rulează ffmpeg?
Avatar avatar
drapel ph
Am început să ruleze Trebuie doar să schimb permisiunea fișierului executabil `ffmpeg` la `744`.
Avatar avatar
drapel ph
Dacă utilizați ffmpeg cu PHP și `shell_exec(ffmpeg ...)` atunci trebuie să utilizați permisiunile pentru fișiere `777`.
Puncte:2
drapel in

Poate că cea mai bună modalitate de a obține o copie a FFmpeg și a filtrului zscale este să utilizați, dar se modifica usor, excelentul FFmpeg trac ghid de compilare. Acest ghid va nu interferează cu bibliotecile de sistem.

Acest lucru poate fi realizat în doar doi pași simpli:

1. Instalați zimg:

Când instalați lista lungă de dependențe din ghid, adăugați următoarele la de asemenea instalare zimage:

   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 release-3.0.2.tar.gz && \
   cd zimg-release-3.0.2 && \
   ./autogen.sh && \
   ./configure --prefix="$HOME/ffmpeg_build" --disable-shared && \
   face && \
   face instalarea

Aceasta instalează o copie locală a zimg că FFmpeg va prelua când va fi compilat.

2. Compilați FFmpeg:

Urmăriți integral Ghid FFmpeg trac iar când ajungeți la secțiunea în care este compilat FFmpeg pur și simplu adăugați următoarele la ./configure şir:

   --enable-libzimg

Și acest lucru va fi suficient pentru a activa filtrul zscale.

3. Testare, testare...

FFmpeg în sine poate fi testat pentru prezența filtrului zscale:

andrew@ithaca:~$ ffmpeg -filters 2> /dev/null |grep zscale
 ..C zscale V->V Aplicați redimensionarea, spațiul de culoare și conversia adâncimii de biți.
andrew@ithaca:~$ 

am testat ffmkv în sine cu o dimensiune mare de lux:

andrew@ithaca:~$ ffmkv --preset „Până la 4K, audio original, 4 GB pe oră VBR, HDR” input.mkv output.mkv
Audio este Stream Copy VBR, dimensiunea fișierului va fi mai mare decât cea estimată.
Se procesează trecerea 1 a videoclipului VBR, timpul rămas este timpul rămas doar pentru trecerea 1.
Procesul va funcționa 100% în timp ce ffmpeg închide funcțiile.
conversia ffmpeg a input.mkv a început la 30.08.21, la 19:53:05
input.mkv are 1248 de cadre, acum conversie
ffmpeg: 1253 din 1248 cadre la 24 fps, progres: 100% și ETA: 0h 0m 0s     
ffmpeg s-a oprit pe 30.08.21 19:54:06

Procesarea trecerii 2 a videoclipului VBR, timpul rămas este timpul rămas total.
Procesul va funcționa 100% în timp ce ffmpeg închide funcțiile.
conversia ffmpeg a input.mkv a început la 30.08.21, 19:54:06
input.mkv are 1248 de cadre, acum conversie
ffmpeg: 1253 din 1248 cadre la 23 fps, progres: 100% și ETA: 0h 0m 0s     
ffmpeg s-a oprit pe 30.08.21 19:55:06
andrew@ithaca:~$ 

Si totul este bine :)

Puncte:2
drapel ru

Este un pachet snap pentru ffmpeg. Versiunea actuală din canalul „stabil” este 4.3.1, dar nu este listată --enable-zimg în configurația de construcție așa cum este tipărită -versiune, deci s-ar putea să nu funcționeze. Cu toate acestea, canalul „edge” al acelui pachet snap conține o versiune bazată pe ffmpeg 4.4 cu --enable-zimg. Deci instalarea ar fi la fel de ușoară

snap install ffmpeg --channel edge
Puncte:0
drapel us

Adăugarea de PPA-uri externe este foarte riscantă și deseori ar putea cauza probleme cu instalarea curentă.

Dacă implementați aplicația și aveți nevoie de o versiune specifică, puteți utiliza această metodă.

Mai întâi vom descărca cea mai recentă versiune statică gpl de la unul dintre constructori oficiali BtbN. Apoi vom extrage fișierul în fișierul /usr/local/ffmpeg și creează Legături simbolice la binare în /usr/bin director.

Acesta este un proces manual de instalare. Puteți crea un script urmând toți pașii menționați aici:

1. Eliminați pachetul anterior instalat folosind apt

sudo apt remove --purge --auto-remove -y ffmpeg

2. Creați un director temporal și treceți la el

mkdir -vp ~/tmp
cd ~/tmp

3. Obțineți numele fișierului și versiunea

## Definiți numele depozitului
REPO_NAME='BtbN/FFmpeg-Builds'

## Definiți adresa URL a celei mai recente ediții
LR_URL="https://api.github.com/repos/${REPO_NAME}/releases/latest"

## Obțineți cea mai recentă versiune
versiune=$(curl -s „${LR_URL}” \
| grep -m 1 ffmpeg-n \
| cut -d ':' -f2 \
| cut -d '-' -f2 \
| tr -d 'n' \
| { citeste v; eco ${v::-2}; })

## Obțineți numele fișierului
dl_filename=$(curl -s „${LR_URL}” \
| grep „nume.*linux64-gpl-${versiune}.tar.xz” \
| cut -d ':' -f2 \
| { citeste n; eco ${n:1:-2}; })

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

4. Descărcați fișierul

## Descărcați cel mai recent tar.xz
curl -s „${LR_URL}” \
| grep „browser_download_url.*linux64-gpl-${version}.tar.xz” \
| cut -d ':' -f 2,3 \
| tr -d '"' \
| wget -qi - -O $dl_filename

5. Definiți căile de instalare a pachetului

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

6. Extrageți și instalați versiunea descărcată

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

7. Adăugați fișiere binare în directoarele binare și biblioteci de sistem

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. Testați noua versiune.

ffmpeg -versiune | grep „versiunea ffmpeg”

Acum puteți crea un script numit ffmpeg-install-latest.sh:

#!/bin/bash

## Definiți numele pachetului
PKG_NAME='ffmpeg'

## Definiți calea locală a sistemului
LOCAL_PATH='/usr/local'

## Definiți calea bibliotecii de sistem
LIB_PATH='/usr/lib'

## Definiți calea binară a sistemului
BIN_PATH='/usr/bin'

## Definiți directorul de pornire al utilizatorului
USER_HOME_DIR=$(getent passwd ${SUDO_USER:-$USER} | cut -d: -f6)

## Definiți numele depozitului
REPO_NAME='BtbN/FFmpeg-Builds'

## Definiți edițiile URL
RELEASES_URL="https://api.github.com/repos/${REPO_NAME}/releases"

## Definiți adresa URL a celei mai recente ediții
## LR_URL="https://api.github.com/repos/${REPO_NAME}/releases/latest"
LR_URL="${RELEASES_URL}/latest"

## Definiți directorul temporal
TMP_DIR='tmp'

## Mutați în directorul temporal
tmp_path="${USER_HOME_DIR}/${TMP_DIR}"
mkdir -vp $tmp_path
cd $tmp_path

## Obțineți cea mai recentă versiune și construiți
full_version=$(curl -s „${LR_URL}” \
| grep -m 1 ffmpeg-n \
| cut -d ':' -f2 \
| cut -d '-' -f2 \
| tr -d 'n')

version="${full_version::-2}"
build="${full_version:4:1}"

echo „Ultima versiune: „$full_version

## Obțineți numele fișierului
dl_filename=$(curl -s „${LR_URL}” \
| grep „nume.*linux64-gpl-${versiune}.tar.xz” \
| cut -d ':' -f2 \
| { citeste n; eco ${n:1:-2}; })

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

echo „Fișier de descărcat: „$dl_filename

## Descărcați cel mai recent
## Bazat pe: echo $(curl -s "${LR_URL}"" | grep "browser_download_url.*ffmpeg-n4\.4\.1.*linux64-gpl-4\.4\.tar.xz" | cut -d ':' -f 2,3 | tr -d '"')
curl -s „${LR_URL}” \
| grep „browser_download_url.*linux64-gpl-${version}.tar.xz” \
| cut -d ':' -f 2,3 \
| tr -d '"' \
| wget -qi - -O $dl_filename

## Eliminați pachetul anterior instalat folosind apt
status="$(dpkg-query -W --showformat='${db:Status-Status}' ${PKG_NAME} 2>&1)"
dacă [ $? = 0 ] || [ "${status}" = instalat ]; atunci
  sudo apt remove --purge --auto-remove -y „${PKG_NAME}”
fi

## Definiți căile de instalare a pachetului
pkg_path="${LOCAL_PATH}/${PKG_NAME}"
pkg_lib_path="${LIB_PATH}/${PKG_NAME}"

## Extrageți și instalați versiunea descărcată
sudo rm -rf $pkg_path && tar -xvf $dl_filename
sudo mv -v $dl_name $pkg_path

## Adăugați fișiere binare în directoarele binare și biblioteci de sistem
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”

## Testează-ți noua versiune.
ffmpeg -versiune | grep „versiunea ffmpeg”

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.