जब से तुम वास्तव में तीन एक सवाल में जाने मुझे कदम से इस कदम के माध्यम से जाना है, लेकिन संस्करण और ffmpeg निर्माण मैं के साथ इस परीक्षण किया है की सक्षम सुविधाएं कुछ सभी जानकारी के पहले।
ffmpeg version 2.6.2 Copyright (c) 2000-2015 the FFmpeg developers
built with gcc 4.8 (Ubuntu 4.8.2-19ubuntu1)
configuration: --extra-libs=-ldl --prefix=/opt/ffmpeg --enable-avresample --disable-debug --enable-nonfree --enable-gpl --enable-version3 --enable-libopencore-amrnb --enable-libopencore-amrwb --disable-decoder=amrnb --disable-decoder=amrwb --enable-libpulse --enable-libx264 --enable-libx265 --enable-libfdk-aac --enable-libvorbis --enable-libmp3lame --enable-libopus --enable-libvpx --enable-libspeex --enable-libass --enable-avisynth --enable-libsoxr --enable-libxvid --enable-libvo-aacenc --enable-libvidstab
libavutil 54. 20.100/54. 20.100
libavcodec 56. 26.100/56. 26.100
libavformat 56. 25.101/56. 25.101
libavdevice 56. 4.100/56. 4.100
libavfilter 5. 11.102/5. 11.102
libavresample 2. 1. 0/2. 1. 0
libswscale 3. 1.101/3. 1.101
libswresample 1. 1.100/1. 1.100
libpostproc 53. 3.100/53. 3.100
Hyper fast Audio and Video encoder
अवधि
जब से तुम ffmpeg स्थापित आप शायद ffprobe भी है।
ffprobe
ffprobe मल्टीमीडिया धाराओं और मानव और मशीन पठनीय फैशन में प्रिंट से जानकारी इकट्ठा ...
तो का उपयोग कर ffprobe तुम कर सकते हो अवधि पाने के लिए निम्नलिखित:
exec('ffprobe -i input-file.mp4 -show_format | grep duration 2>&1', $result);
echo "<pre>";
var_dump($result[0]); // string(19) "duration=104.022000"
echo "</pre>";
- Upd खा लिया -
LordNeckbeard तो बाहर बिंदु करने के लिए यहाँ grep
उपयोगिता का उपयोग करने के लिए कोई जरूरत नहीं है उस तरह का था। और चूंकि यह एक यूनिक्स आधारित उपकरण है और इसलिए सभी ऑपरेटिंग सिस्टम पर मौजूद नहीं है, इसलिए उनका प्रस्ताव बिल्कुल सही है।
तो यहां grep
के उपयोग के बिना एक उदाहरण है जो निम्नलिखित http://trac.ffmpeg.org/wiki/FFprobeTips पृष्ठ पर पाया जा सकता है।
exec('ffprobe -v error -show_entries format=duration -of default=noprint_wrappers=1:nokey=1 input-file.mov 2>&1', $result);
echo "<pre>";
var_dump($result[0]); // string(11) "5634.401068"
echo "</pre>";
थंबनेल
ffmpeg डॉक्स पृष्ठ बताते हैं कि कैसे निम्नलिखित मानकों के साथ ffmpeg बुला एक वीडियो से कई थंबनेल निकालने के लिए एक उदाहरण है:
ffmpeg -i foo.avi -r 1 -s WxH -f image2 foo-%03d.jpeg
यह निकाला जाएगा ओ वीडियो से प्रति सेकंड फ्रेम फ्रेम और उन्हें foo-001.jpeg नामक फ़ाइलों में आउटपुट करेगा, foo-002.jpeg इत्यादि। छवियों को नए WxH मानों को फिट करने के लिए पुन: सहेजा जाएगा।
यदि आप केवल सीमित संख्या में फ्रेम निकालना चाहते हैं, तो आप उपरोक्त आदेश को -vframes या -t विकल्प के साथ संयोजन में या समय-समय पर किसी निश्चित बिंदु से निकालने के लिए संयोजन में उपयोग कर सकते हैं।
समय में एक निश्चित बिंदु आप -vframes
जो -frames:v
के लिए एक उपनाम है के साथ संयोजन में -ss
आदेश का उपयोग करने के लिए होगा से एक थंबनेल निकालने के लिए।
exec('ffmpeg -i input.mp4 -r 1 -ss 00:00:50 -vf scale=1024:-1 -vframes 1 output.jpeg 2>&1', $result);
echo "<pre>";
print_r($result);
echo "</pre>";
लेकिन -ss
आदेश पर निम्नलिखित जानकारी के बारे में पता होना: यहां एक उदाहरण दिया कि कैसे करना होता है।
ध्यान दें कि अधिकांश प्रारूपों में बिल्कुल खोजना संभव नहीं है, इसलिए ffmpeg स्थिति से पहले निकटतम खोज बिंदु की तलाश करेगा। जब ट्रांसकोडिंग और -accurate_seek सक्षम है (डिफ़ॉल्ट), खोज बिंदु और स्थिति के बीच यह अतिरिक्त खंड डीकोड और त्याग दिया जाएगा। जब स्ट्रीम कॉपी या कब -noaccurate_seek का उपयोग किया जाता है, तो इसे संरक्षित किया जाएगा।
यह भी सुनिश्चित करें कि आपका आउटपुट पथ लिखने योग्य है। नहीं तो आप इस तरह की तलाश में एक त्रुटि प्राप्त होगी:
[image2 @ 0x35ae280] Could not open file : /output/path/to/your/file
Theora और Vorbis एन्कोडिंग
यह केवल एक चीज मैं क्योंकि तथ्य यह है कि ffmpeg के अपने निर्माण नहीं करता है का परीक्षण नहीं कर सकता है जैसा कि आप उपरोक्त जानकारी से बता सकते हैं
--enable-libtheora
झंडा है। आवश्यक पुस्तकालयों को थियोरा वीडियो प्रारूप और वोर्बीस ऑडियो प्रारूप में डीकोड करने में सक्षम होने के लिए आपको मूल रूप से ffmpeg संकलित करने की आवश्यकता है।
यहां कुछ जानकारी दी गई है जिससे आप इसे शुरू कर सकें।
A Brief Theora and Vorbis Encoding Guide
आप एक कस्टम उल्लेख किया पुस्तकालयों के साथ निर्माण है, तो आपको निम्न कार्य करने में सक्षम होना चाहिए:
exec('ffmpeg -i input.mkv -codec:v libtheora -qscale:v 7 -codec:a libvorbis -qscale:a 5 output.ogv 2>&1', $result);
echo "<pre>";
print_r($result);
echo "</pre>";
Here जहां इन जानकारी का सबसे पाया जा सकता है के लिए लिंक है।
उम्मीद है कि इससे मदद मिलती है।
तुम क्यों Theora OGG में चाहते हैं की जानकारी? यदि आप उस दिशा में जाने जा रहे हैं तो वेबएम में वीपी 8 (या वीपी 9) का उपयोग क्यों न करें?यह एक और आधुनिक वीडियो प्रारूप है, और (मैं यहां अनुमान लगा रहा हूं) थियोरा + ओजीजी का समर्थन करने वाले ब्राउज़र को वीपी 8 + वेबएम का समर्थन करना चाहिए। – LordNeckbeard