Score:9

วิธีที่ปลอดภัยที่สุดในการติดตั้ง ffmpeg ที่เสถียรล่าสุด (>= 4.3) บน Ubuntu 20.04 (ppa ไม่ทำงาน)

ธง mx

ฉันกำลังพยายามใช้ เอฟเอ็มเควีซึ่งต้องใช้เวอร์ชันของ 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 ที่จะใช้งานได้โดยที่ googling ของฉันไม่ปรากฏขึ้น หรือฉันควรจะดาวน์โหลดสิ่งนั้น ffmpeg_4.3.2-0+deb11u2ubuntu1_amd64.deb ไฟล์และติดตั้งด้วย dpkg?

ฉันมักจะหวาดระแวงเกี่ยวกับการติดตั้งช่องด้านข้าง โดยเฉพาะอย่างยิ่งเมื่อเกี่ยวข้องกับวิดีโอ วิธี "จะไม่ทำลายการอัปเดต APT ของระบบในอนาคต" ที่ดีที่สุดในการติดตั้ง ffmpeg ที่เสถียรในปัจจุบันคืออะไร

marcelm avatar
cn flag
_"README ของพวกเขาบอกว่านี่เป็นค่าเริ่มต้นภายใต้ 18.04 แต่ ... "_ - ที่จริงแล้ว [readme นั้น](https://github.com/Fmstrat/ffmkv#readme) บอกว่าการสนับสนุน zscale นั้น _not_ รองรับใน 18.04 โดยค่าเริ่มต้น (ซึ่งก็สมเหตุสมผล เพราะ [การรองรับ zscale เป็นฟีเจอร์ใหม่ของ ffmpeg 4.3.1](https://ko-fi.com/post/FFmpeg-4-3-1-available-now-with-zscale-support- R6R52I7J7)).
mx flag
@marcelm โอ้ WOW นั่นเป็นคำที่คลุมเครือมาก! ที่สามารถตีความเป็นอย่างอื่นได้อย่างง่ายดาย :)
in flag
ที่ใช้กับ ppa นั้นเท่านั้น FFmpeg เพิ่ม zscale ใน 3.0
Score:6
ธง zw

มี PPA อื่น ๆ ที่มี ffmpeg ที่ใหม่กว่า ล่าสุดคือ FFmpeg 4 - เครื่องมือสื่อ (Xenial และใหม่กว่า) จาก Rob Savory. หากต้องการเพิ่ม PPA นี้ลงในระบบของคุณให้ใช้คำสั่งด้านล่าง:

sudo add-apt-repository ppa:savoury1/ffmpeg4
sudo apt-get อัปเดต
sudo apt-get ติดตั้ง ffmpeg

ดังนั้นคุณจะได้รับเวอร์ชันที่มี --enable-libzimg รวบรวมธงและ เอฟเอ็มเควี จะไม่บ่นเกี่ยวกับ "การแปลง HDR เป็น SDR หรือการเปลี่ยนแปลงความละเอียด"

หมายเหตุ: คุณสามารถ ค้นหา PPA ด้วยตัวเองโดยใช้โปรแกรมเฉพาะที่ชื่อว่า Y ผู้จัดการ PPA, .

mx flag
ขอบคุณ ดูเหมือนว่าจะได้ผลดี!
mx flag
อ๊ะ - หลังจากอัปเกรด ffmpeg ฉันเพิ่งสังเกตเห็นว่ามันพัง KDEnlive - ตอนนี้มันไม่สามารถเรนเดอร์เป็น mp4 ("ตัวแปลงสัญญาณวิดีโอที่ไม่รองรับ: libx264") ฉันจำเป็นต้องติดตั้งไลบรารีอื่นอีกหรือไม่
N0rbert avatar
zw flag
ขึ้นอยู่กับวิธีการติดตั้ง KDEnlive
mx flag
มันคิดออกแล้ว ดูเหมือนว่า MLT จำเป็นต้องได้รับการปรับปรุง ฉันเพิ่งเพิ่ม kdenlive PPA และอัปเกรดเวอร์ชัน และตอนนี้ทุกอย่างดูเหมือนจะใช้งานได้แล้ว
Score:5
ธง jp

วิธีง่ายๆ

  1. ดาวน์โหลดที่รวบรวมไว้แล้ว เอฟเอ็มเพก จาก johnvansickle.com. รองรับ zscale
  2. วางที่ดาวน์โหลด เอฟเอ็มเพก ของคุณ เส้นทาง โดยย้ายที่ดาวน์โหลดมา เอฟเอ็มเพก เข้าไปข้างใน /usr/local/bin หรือ ~/ถังขยะ (ล็อกอินใหม่หรือเรียกใช้ ที่มา ~/.profile ถ้าคุณย้ายเข้าไป ~/ถังขยะ).

สิ่งนี้จะไม่รบกวนไฟล์ระบบหรือแพ็คเกจอื่น ๆ หากต้องการถอนการติดตั้งเพียงแค่ลบไฟล์ เอฟเอ็มเพก ไฟล์.

ฉันไม่ใช่แฟนตัวยงของ PPA พวกเขาอาจจะยุ่งเหยิง มักจะเกินความจริง และ อาจทำให้เกิดปัญหาได้ โดยรบกวนระบบการจัดการพัสดุ

us flag
ไม่สามารถบำรุงรักษาได้ง่าย แต่เป็นการแก้ไขที่รวดเร็วและดีอย่างแน่นอน ขอบคุณ!
Avatar avatar
ph flag
ฉันได้ดาวน์โหลด `ffmpeg-release-amd64-static.tar.xz` แตกไฟล์ build ลงในโฟลเดอร์ใหม่ `ffmpeg` และอัปโหลดโฟลเดอร์ไปที่ `/usr/local/bin/ffmpeg` ตอนนี้เมื่อพยายามเริ่ม ffmpeg ด้วย `/usr/local/bin/ffmpeg/ffmpeg` ฉันได้รับ "ปฏิเสธการอนุญาต" ถ้าฉันลอง `sudo /usr/local/bin/ffmpeg/ffmpeg` ฉันจะได้รับ `command not found` จะรัน ffmpeg ได้อย่างไร?
Avatar avatar
ph flag
ทำให้มันทำงาน จำเป็นต้องเปลี่ยนการอนุญาตของไฟล์เรียกทำงาน `ffmpeg` เป็น `744`
Avatar avatar
ph flag
หากคุณใช้ ffmpeg กับ PHP และ `shell_exec(ffmpeg ...)` คุณต้องใช้การอนุญาตไฟล์ `777`
Score:2
ธง in

บางทีวิธีที่ดีที่สุดในการรับสำเนาของ FFmpeg และตัวกรอง zscale คือการใช้ แต่ปรับเปลี่ยนเล็กน้อยแทร็ก FFmpeg ที่ยอดเยี่ยม คู่มือการเรียบเรียง. คู่มือนี้จะ ไม่ รบกวนการทำงานของไลบรารีระบบ

สามารถทำได้ในสองขั้นตอนง่ายๆ:

1. ติดตั้ง zimg:

เมื่อติดตั้งรายการการอ้างอิงแบบยาวในคู่มือ ให้เพิ่มสิ่งต่อไปนี้ อีกด้วย ติดตั้ง ซิมเมจ:

   mkdir -p ~/ffmpeg_sources && \
   ซีดี ~/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 && \
   ซีดี zimg-release-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 ใช้การปรับขนาด ขอบเขตสี และการแปลงความลึกของบิต
แอนดรู@อิทากา:~$ 

ฉันทดสอบ เอฟเอ็มเควี ตัวเองด้วยขนาดที่ใหญ่ขึ้น:

andrew@ithaca:~$ ffmkv --preset 'สูงสุด 4K, เสียงต้นฉบับ, 4GB ต่อชั่วโมง VBR, HDR' input.mkv output.mkv
เสียงเป็น Stream Copy VBR ขนาดไฟล์จะมากกว่าที่ประมาณไว้
กำลังประมวลผลผ่าน 1 ของวิดีโอ VBR เวลาที่เหลือเป็นเวลาที่เหลือสำหรับผ่าน 1 เท่านั้น
กระบวนการจะอยู่ที่ 100% ในขณะที่ ffmpeg ปิดฟังก์ชัน
การแปลง ffmpeg ของ input.mkv เริ่มเมื่อ 30/08/21 19:53:05 น.
input.mkv มี 1248 เฟรม กำลังแปลง
ffmpeg: 1253 จาก 1248 เฟรมที่ 24 fps, ความคืบหน้า: 100% และ ETA: 0h 0m 0s     
ffmpeg หยุดเมื่อ 30/08/21 19:54:06 น

กำลังประมวลผลผ่าน 2 ของวิดีโอ VBR เวลาที่เหลือคือเวลาที่เหลือทั้งหมด
กระบวนการจะอยู่ที่ 100% ในขณะที่ ffmpeg ปิดฟังก์ชัน
การแปลง ffmpeg ของ input.mkv เริ่มเมื่อ 30/08/21 19:54:06 น.
input.mkv มี 1248 เฟรม กำลังแปลง
ffmpeg: 1253 จาก 1248 เฟรมที่ 23 fps, ความคืบหน้า: 100% และ ETA: 0h 0m 0s     
ffmpeg หยุดเมื่อ 30/08/21 19:55:06 น
แอนดรู@อิทากา:~$ 

และทุกอย่างเรียบร้อยดี :)

Score:2
ธง ru

มี แพ็คเกจสแน็ปสำหรับ ffmpeg. เวอร์ชันปัจจุบันในช่อง "เสถียร" คือ 4.3.1 แต่ไม่มีรายการ --enable-zimg ในการกำหนดค่าบิลด์ตามที่พิมพ์ด้วย -เวอร์ชั่นดังนั้นจึงอาจไม่ทำงาน อย่างไรก็ตามแชนเนล "edge" ของแพ็คเกจ snap นั้นมีเวอร์ชันที่ใช้ ffmpeg 4.4 ด้วย --enable-zimg. ดังนั้นการติดตั้งจะง่ายเหมือน

สแน็ปติดตั้ง ffmpeg --channel edge
Score:0
ธง us

การเพิ่ม PPA ภายนอกมีความเสี่ยงสูง และบ่อยครั้งอาจทำให้เกิดปัญหากับการติดตั้งปัจจุบันของคุณ

หากคุณกำลังปรับใช้แอปพลิเคชันของคุณและคุณต้องการเวอร์ชันเฉพาะ คุณสามารถใช้วิธีนี้ได้

ก่อนอื่นเราจะดาวน์โหลด gpl static build ล่าสุดจากหนึ่งในนั้น ผู้สร้างอย่างเป็นทางการ ล้านบาท. จากนั้นเราจะแตกไฟล์ในส่วนของ /usr/local/ffmpeg และสร้าง ลิงค์สัญลักษณ์ ไปยังไบนารีลงใน /usr/bin ไดเรกทอรี

นี่เป็นขั้นตอนการติดตั้งด้วยตนเอง คุณสามารถสร้างสคริปต์โดยทำตามขั้นตอนทั้งหมดที่กล่าวถึงที่นี่:

1. ลบแพ็คเกจก่อนหน้าที่ติดตั้งโดยใช้ apt

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

2. สร้างไดเร็กทอรีชั่วคราวและย้ายไปที่ไดเร็กทอรี

mkdir -vp ~/tmp
ซีดี ~/tmp

3. รับชื่อไฟล์และเวอร์ชัน

## กำหนดชื่อที่เก็บ
REPO_NAME='BtbN/FFmpeg-บิลด์'

## กำหนด URL ของรุ่นล่าสุด
LR_URL="https://api.github.com/repos/${REPO_NAME}/releases/latest"

## รับเวอร์ชันล่าสุด
version=$(curl -s "${LR_URL}" \
| grep -m 1 ffmpeg-n \
| ตัด -d ':' -f2 \
| ตัด -d '-' -f2 \
| tr -d 'n' \
| { อ่าน v; เสียงสะท้อน ${v::-2}; })

## รับชื่อไฟล์
dl_filename=$(ขด -s "${LR_URL}" \
| grep "name.*linux64-gpl-${version}.tar.xz" \
| ตัด -d ':' -f2 \
| { อ่าน n; เสียงสะท้อน ${n:1:-2}; })

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

4. ดาวน์โหลดไฟล์

## ดาวน์โหลด tar.xz ล่าสุด
ขด -s "${LR_URL}" \
| grep "browser_download_url.*linux64-gpl-${version}.tar.xz" \
| ตัด -d ':' -f 2,3 \
| tr -d '"' \
| 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:

#!/bin/bash

## กำหนดชื่อแพ็คเกจ
PKG_NAME='ffmpeg'

## กำหนดเส้นทางท้องถิ่นของระบบ
LOCAL_PATH='/usr/ท้องถิ่น'

## กำหนดเส้นทางไลบรารีระบบ
LIB_PATH='/usr/lib'

## กำหนดเส้นทางไบนารีของระบบ
BIN_PATH='/usr/bin'

## กำหนด home dir ของผู้ใช้
USER_HOME_DIR=$(getent passwd ${SUDO_USER:-$USER} | ตัด -d: -f6)

## กำหนดชื่อที่เก็บ
REPO_NAME='BtbN/FFmpeg-บิลด์'

## กำหนดการเผยแพร่ URL
RELEASES_URL="https://api.github.com/repos/${REPO_NAME}/releases"

## กำหนด 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
ซีดี $tmp_path

## รับเวอร์ชันล่าสุดและสร้าง
full_version=$(curl -s "${LR_URL}" \
| grep -m 1 ffmpeg-n \
| ตัด -d ':' -f2 \
| ตัด -d '-' -f2 \
| tr -d 'n')

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

echo 'เวอร์ชันล่าสุด: '$full_version

## รับชื่อไฟล์
dl_filename=$(ขด -s "${LR_URL}" \
| grep "name.*linux64-gpl-${version}.tar.xz" \
| ตัด -d ':' -f2 \
| { อ่าน n; เสียงสะท้อน ${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 '"')
ขด -s "${LR_URL}" \
| grep "browser_download_url.*linux64-gpl-${version}.tar.xz" \
| ตัด -d ':' -f 2,3 \
| tr -d '"' \
| wget -qi - -O $dl_filename

## ลบแพ็คเกจก่อนหน้าที่ติดตั้งโดยใช้ apt
สถานะ="$(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'

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา