डीएफएम से ffmpeg स्थापित करना और फिर टर्मिनल से चलाना, क्या कोई बेहतर तरीका है?


10

यहां से: https://ffmpeg.org/download.html#build-mac मैंने स्टैटिक बिल्ड 64-बिट चुना जो मुझे भी पसंद है https://evermeet.cx/ffmpeg/

मैंने फिर इसे डाउनलोड किया:

enter image description here

और इसका उपयोग करके इसे खोला:

enter image description here

जिसने मुझे यह दिया:

Last login: Wed Jun  6 09:41:56 on ttys000
david-selfs-Air:~ david$ /Volumes/FFmpeg\ 91200-g1616b1be5a/ffmpeg ; exit;
ffmpeg version N-91200-g1616b1be5a-tessus Copyright (c) 2000-2018 the FFmpeg developers
  built with Apple LLVM version 9.1.0 (clang-902.0.39.1)
  configuration: --cc=/usr/bin/clang --prefix=/opt/ffmpeg --extra-version=tessus --enable-avisynth --enable-fontconfig --enable-gpl --enable-libaom --enable-libass --enable-libbluray --enable-libfreetype --enable-libgsm --enable-libmodplug --enable-libmp3lame --enable-libmysofa --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopus --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libx264 --enable-libx265 --enable-libxavs --enable-libxvid --enable-libzimg --enable-libzmq --enable-libzvbi --enable-version3 --pkg-config-flags=--static --disable-ffplay
  libavutil      56. 18.102 / 56. 18.102
  libavcodec     58. 19.104 / 58. 19.104
  libavformat    58. 17.100 / 58. 17.100
  libavdevice    58.  4.100 / 58.  4.100
  libavfilter     7. 24.100 /  7. 24.100
  libswscale      5.  2.100 /  5.  2.100
  libswresample   3.  2.100 /  3.  2.100
  libpostproc    55.  2.100 / 55.  2.100
Hyper fast Audio and Video encoder
usage: ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}...

Use -h to get full help or, even better, run 'man ffmpeg'
logout
Saving session...
...copying shared history...
...saving history...truncating history files...
...completed.
Deleting expired sessions...7 completed.

[Process completed]

हालांकि जब मैं एक टर्मिनल खोलता हूं और कोशिश करता हूं ffmpeg या man ffmpeg या और भी ffmpeg -i filename.mp4 -vn filename.wav (से यहाँ ) सब मुझे मिलता है

-बैश: ffmpeg: कमांड नहीं मिला

मुझे पास होना चाहिए, क्या ऐसी कोई जगह है जहाँ मुझे अब एक पथ को परिभाषित करने की आवश्यकता है ffmpeg? मुझे नहीं पता कि यह कैसे करना है, या किस रास्ते का उपयोग करना है।

क्या कोई बेहतर तरीका है?


1
कभी होमब्रेव के बारे में सुना है?
Kyslik

1
@Kyslik ने कभी भी भद्दे कमेंट पोस्ट करने से पहले एक सवाल का जवाब पढ़ा? Homebrew .dmg फ़ाइलों को स्थापित नहीं करता है। हालाँकि यह एक आसान विकल्प है जिसकी अपेक्षा मैंने की थी।
uhoh

जवाबों:


18

यह समस्या है bash तलाश में है ffmpeg में निर्देशिका सूची में $PATH। इन निर्देशिकाओं में से कुछ SIP द्वारा संरक्षित हैं और इसलिए आपको इसकी आवश्यकता होगी SIP को निष्क्रिय करें इन निर्देशिकाओं में फ़ाइल डालने के लिए। वैकल्पिक रूप से, आप इसे Homebrew का उपयोग करके स्थापित कर सकते हैं।

पहले होमब्री को इस कमांड के साथ इंस्टॉल करें:

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

फिर इंस्टॉल करें ffmpeg इस आदेश के साथ:

brew install ffmpeg

Homebrew में ffmpeg स्थापित करेगा SIP द्वारा संरक्षित पथ नहीं , लेकिन भीतर $PATH, अधिक विशेष रूप से यह होगा के तहत स्थापित करें /usr/local/bin निर्देशिका।

यह मैन्युअल रूप से मैन्युअल कमांड के साथ किया जा सकता है (मूल रूप से मैन्युअल रूप से होमब्रेव क्या करता है। इस दृष्टिकोण के लिए @ डायवड्स उत्तर देखें। लेकिन मैं कई कारणों से होमब्रेव का सुझाव दूंगा। बड़ी मात्रा में उपकरण स्थापित करने के लिए इसका उपयोग करना बहुत आसान और तेज है। आप बहुत तेजी से अपडेट भी कर सकते हैं। Homebrew भी निर्भरता स्थापित करना आसान बनाता है।

संपादित करें: यकीन नहीं होता कि यह इतने डाउनवोट क्यों हो रहे हैं। मेरे पास पहले से गलत जवाब के साथ इस जवाब का एक हिस्सा था जिसे मैंने इसे बदल दिया है। मेरा मानना ​​है कि यह वर्तमान में सटीक है। यदि आप असहमत हैं तो आप नीचे टिप्पणी कर सकते हैं या आवश्यकतानुसार संपादित कर सकते हैं। मैंने एसआईपी के बारे में भाग को शामिल किया है क्योंकि मुझे लगता है कि यह समझना महत्वपूर्ण है कि कमांड के प्लेसमेंट के संबंध में क्या प्रतिबंध हैं और सभी कमांड के लिए सिर्फ एक ही रास्ता क्यों नहीं है।


2
मैं देख रहा हूँ, इसीलिए homebrew का उल्लेख "ffmpeg कैसे स्थापित करें" पृष्ठों में इतनी बार किया जाता है। ठीक है, मैं निश्चित रूप से सिस्टम इंटेग्रिटी प्रोटेक्शन नामक किसी भी चीज़ को हराने के साथ गड़बड़ नहीं करना चाहता, मैं होमब्रिज लेन को नीचे करूँगा और देखूँगा कि यह मुझे कहाँ ले जाती है, और यहाँ अपडेट करें। धन्यवाद!
uhoh

6
" bash में ffmpeg की तलाश है / बिन / "- सच नहीं, वास्तव में भी करीब नहीं। बैश में दिख रहा है PATH - जो पूरी तरह से आपके नियंत्रण में है, बायनेरिज़ को स्थापित करने के लिए एसआईपी को अक्षम करने की आवश्यकता नहीं है।
Boris the Spider

3
$PATH बायनेरिज़ का पता लगाने के लिए टर्मिनल शेल द्वारा उपयोग किए जाने वाले पर्यावरण चर में केवल शामिल नहीं है /bin/, यह भी शामिल है /usr/local/bin जिसके लिए लिखने के लिए SIP को निष्क्रिय करने की कोई आवश्यकता नहीं है। बस ffmpeg बाइनरी के एक सिमलिंक को अंदर रखें /usr/local/bin और यह काम करेगा। वैकल्पिक रूप से, आप उपयोगकर्ता को संशोधित कर सकते हैं $PATH पर्यावरण चर आवश्यकतानुसार। HomeBrew एक अच्छा वैकल्पिक समाधान है लेकिन इस उत्तर का आधार गलत है।
zakinster

5
देख support.apple.com/en-us/HT204899 एसआईपी द्वारा संरक्षित निर्देशिकाओं के लिए। इसमें कोई एप्लिकेशन जोड़ने के लिए SIP को अक्षम करने की कोई आवश्यकता नहीं है /usr/local/ निर्देशिका।
Allan

3
@uhoh सिर्फ एक साइड नोट के रूप में: अब जब आपके पास होमब्रेव है और चल रहा है, तो आप नवीनतम ffmpeg संस्करण को कभी भी अपग्रेड कर सकते हैं brew upgrade ffmpeg
Synoli

25

आप डिस्क छवि से प्रोग्राम को अपने स्थानीय फ़ोल्डर में कॉपी करने वाले हैं। इन चीजों के लिए सामान्य स्थान / usr / स्थानीय / बिन है

इसलिए:

sudo mkdir -p /usr/local/bin
sudo cp /Volumes/FFmpeg\ 91200-g1616b1be5a/ffmpeg /usr/local/bin/
sudo chmod +x /usr/local/bin/ffmpeg

और सभी जाने के लिए अच्छा होना चाहिए। SIP को अक्षम करने की आवश्यकता नहीं है।

प्री-कम्पाइल बाइनरी को स्थापित करने के लिए होमब्रे या किसी अन्य पैकेज हैंडलर की आवश्यकता नहीं है। आपको मूल UNIX पर पढ़ना होगा।


4
इस सही उत्तर है।
Allan

आपके उत्तर के लिए धन्यवाद। वास्तव में यह उस समय की बात है जब मैंने सीखना शुरू कर दिया कि यूनिक्स / लिनक्स / बैश का उपयोग कैसे किया जाए, जो भी भाषा है वह यह है कि जब मैं टाइप कर रहा हूं तो मैं इसका उपयोग कर रहा हूं sudo मैं इसे भविष्य में आजमा सकता हूं। मैं केवल एक उत्तर को स्वीकार कर सकता हूं, और जबकि यह अधिक सही होने की संभावना है, दूसरे उत्तर ने मेरी समस्या हल कर दी और मुझे काम करते रहने की अनुमति दी। मुझे लगता है कि उच्च अप-वोट की गिनती इसे एक अत्यंत उपयोगी उत्तर के रूप में चिह्नित करेगी, और पाठकों को बैश के बारे में बाश-फुल के रूप में नहीं, वे कमांड को पहचान लेंगे कि वे क्या खोज रहे हैं।
uhoh

1
@ ओहो यह समुदाय प्रतीत होता है (और आप) सहमत हैं कि यह अधिक सही उत्तर है। स्वीकार करने के लिए स्वतंत्र महसूस करें और इसे स्वीकार करें। मैंने इस उत्तर को अपने संपादित उत्तर में भी संदर्भित किया। अच्छा काम दाविद अनुलेख ये है दे घुमा के
JBis

3
@ जोश धन्यवाद। यह हमेशा दुविधा है कि इन मामलों में क्या करना है। चूंकि मैं अभी इस उत्तर की कोशिश नहीं करने जा रहा हूं, मैं वास्तव में इसे स्वीकार नहीं कर सकता हूं अगर मुझे नहीं पता कि यह मेरे लिए काम करता है या नहीं। वोट, टिप्पणियां और संदर्भ भविष्य के पाठकों को उनकी पसंद के उत्तर तक ले जाएंगे।
uhoh

यह भी ध्यान दें कि ffmpeg के लिए कोई मैन पेज नहीं है
Elliott

2

MacOS का टर्मिनल शेल, जैसा कि विंडोज या लिनक्स में है, देख रहा है $PATH बायनेरिज़ का पता लगाने के लिए पर्यावरण चर।

आप अपनी जाँच कर सकते हैं $PATH परिवर्तनशील:

echo $PATH

जो मानक हाल के macOS में आउटपुट करता है:

/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin

आपको या तो उन निर्देशिका में से एक में बाइनरी की एक प्रति डालनी होगी (अधिमानतः / usr / स्थानीय / बिन के रूप में यह नहीं है एसआईपी -प्रमाणित) या अपने में एक और निर्देशिका जोड़ें $PATH वातावरण विविधता।

सबसे अच्छा अभ्यास आम तौर पर आपके आवेदन को कहीं और संग्रहीत करने के लिए होता है (उदा। /lib ) और केवल एक डाल करने के लिए सिमलिंक बिन निर्देशिका में ही बाइनरी की ओर इशारा करते हुए। यह स्व-निहित बाइनरी के लिए कम सच है लेकिन अनिवार्य है यदि आप एक निष्पादन योग्य चलाना चाहते हैं जो एक .app (जैसे) के अंदर रहता है। /Applications/VLC.app/Contents/MacOS/VLC )

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.