2013-06-02 3 views
7

मैं विंडोज 7 और XAMPP का उपयोग कर रहा localhost.I में ogg ऑडियो में एमपी 3 ऑडियो कन्वर्ट करने के लिए php script.I द्वारा डाउनलोड 'ffmpegConverter_v0.2' ज़िप फ़ाइल चाहते हैं, जहां फ़ोल्डर संरचना है:एमपी 3 से ओजीजी को php द्वारा कैसे परिवर्तित कर सकते हैं?

ffmpegConverter_v0.2 
    --consoleConversor 
     --consoleConversor 
     --consoleConversor.exe 
     --ffmpeg.dll 

    --consoleMonitor 
     --consoleMonitor 
     --consoleMonitor.exe 
     --ffmpeg.dll 
     --Queue.xml 

    --serviceConversor 
     --ffmpeg.dll 
     --serviceConversor 
     --serviceConversor.exe 

    --serviceMonitor 
     --ffmpeg.dll 
     --Queue.xml 
     --serviceMonitor 
     --serviceMonitor.exe 

    --LEEME.txt 
    --README.txt 

मैं रखना 'ffmpegConverter_v0.2' फ़ोल्डर, mp.php और एक ही फ़ोल्डर में 'a.mp3' और mp.php में निम्न कोड का प्रयोग किया: enter image description here

:

<?php  
exec("ffmpegConverter_v0.2\serviceConversor\serviceConversor.exe -i a.mp3 -acodec libvorbis ap.ogg"); 
?> 

उसके बाद निम्न त्रुटि संदेश मिला क क्या मैंने गलत किया? ffmpeg स्थापित करने का सही तरीका क्या है? उस के लिए php स्क्रिप्ट में कमांड लिखने का सही तरीका क्या है और इसका उपयोग ऑनलाइन सर्वर में कैसे किया जा सकता है? क्या कोई अन्य बेहतर कनवर्टर है?

- धन्यवाद।

संपादित करें:

जब मैं निम्नलिखित लाइन

<?php 
exec("ffmpegConverter_v0.2\consoleConversor\consoleConversor.exe -i a.mp3 -acodec libvorbis ap.ogg"); 
?> 

इस्तेमाल किया तो मैं इस संदेश को enter image description here

मैं भी इस की कोशिश की है:

<?php 
exec("c:\Windows\Microsoft.NET\Framework\v2.0.50727\InstallUtil.exe serviceConversor.exe"); 
exec("ffmpegConverter_v0.2\serviceConversor\serviceConversor.exe -i a.mp3 -vcodec libtheora -acodec libvorbis ap.ogg"); 
?> 

फिर पहली तस्वीर की तरह एक ही संदेश मिला।

+1

इसमें PHP के साथ बिल्कुल कुछ नहीं है। एफएफएमपीईजी दस्तावेज़ों को पढ़ें ... युक्ति: शायद .exe के फ़ाइल नाम में "सेवा" शब्द एक सुराग होना चाहिए कि आपको यह त्रुटि क्यों मिल रही है। –

+0

तो मेरा PHP कोड ठीक है? और क्या मैंने सही ज़िप फ़ाइल डाउनलोड की? – user1844626

उत्तर

3

कि serviceConversor चीज़ के बारे में भूल जाओ।

FFmpeg build for Windows प्राप्त करें (एक स्थिर निर्माण जो आपके आर्किटेक्चर से मेल खाता है, अन्य डीएलएल/आदि समस्याओं से बचने के लिए एक अच्छी शुरुआत होनी चाहिए)।

तब का उपयोग exec:

<?php 
    $retCode = exec('C:\\path\\to\\ffmpeg.exe -y -i file.mp3 -acodec libvorbis file.ogg'); 
?> 

बैकस्लैश से बचने के लिए मत भूलना (\\); आपने अपने प्रश्न में नहीं किया था।

exec एफएफएमपीईजी का रिटर्न कोड लौटाएगा (मैंने इसे $retCode में रखा है), जो सफलता के लिए 0 है।

के रूप में कुछ बताया गया है, यदि आप एक VBR ट्रांसकोडिंग के लिए OGG उत्पादन गुणवत्ता निर्धारित करने के लिए -aq विकल्प जोड़ सकते हैं।

libvorbis स्थिर FFmpeg संस्करण में बनाया गया है; मैं सिर्फ ffmpeg.exe -codecs का उपयोग कर जांच की गई:

DEA.L. vorbis    Vorbis (decoders: vorbis libvorbis) 

जहां डे का मतलब डिकोडिंग और एन्कोडिंग इस कोडेक के लिए समर्थित हैं।

+0

मुझे इसे आज़माएं। मैं उस लिंक से "32-बिट स्थिर बिल्ड" डाउनलोड कर रहा हूं। – user1844626

+0

यदि आप वास्तव में 64-बिट चला रहे हैं विंडोज़, मैं दृढ़ता से 64-बिट बिल्ड का सुझाव देता हूं क्योंकि यह अधिक पे होना चाहिए इस मामले में सुधारक। – eepp

+0

जो काम किया। आपकी मदद के लिए बहुत कुछ धन्यवाद। :) – user1844626

2

इनमें से एक काम करना चाहिए:

ffmpeg -y -i a.mp3 -acodec libvorbis -aq 50 output.ogg 
ffmpeg -i 1.mp4 -vcodec libtheora -acodec libvorbis testjohn4545454.ogg 
+0

मैंने दोनों पंक्तियों // exec ("ffmpeg \ serviceConversor \ serviceConversor.exe -y -i a.mp3 -acodec libvorbis -aq 50 output.ogg") की कोशिश की; कार्यकारी ("ffmpeg \ serviceConversor \ serviceConversor मैं a.mp3 -vcodec libtheora -acodec libvorbis testjohn4545454.ogg"); ('ffmpegConverter_v0.2' से 'ffmpeg' में फ़ोल्डर का नाम बदल दिया) लेकिन एक ही त्रुटि संदेश मिला। क्या मैंने कोड सही ढंग से लिखा था? – user1844626

1

सबसे अच्छा सलाह मैं तुम्हें दे सकते हैं:

अगर वहाँ एक README फ़ाइल है, और कुछ काम नहीं कर रहा। इसे पढ़ें!

कहा जा रहा है कि आप serviceConversor.exe के खिलाफ एक आदेश चलाने की कोशिश कर रहे हैं। यह काम नहीं करेगा क्योंकि यह एक विंडोज़ सेवा है और इसे पहले स्थापित करने की जरूरत है। consoleConverser.exe नामक एक और फ़ाइल भी है और, जैसा कि रीडमे फ़ाइल कहता है, 'पिछली स्थापना के बिना निष्पादित किया जा सकता है।'

मैं यह सोचते कर रहा हूँ आप पहले से ही ffmpeg स्थापित है के रूप में है कि

की आवश्यकता है तो अपने पहले विकल्प के लिए प्रयास करें और तरह सही आदेश पर अमल करना होगा। ध्यान रखें कि मैं इस बातचीतकर्ता से परिचित नहीं हूं, इसलिए मुझे नहीं पता कि यह सही आदेश है या नहीं। मैं त्रुटि संदेश में मदद करने के लिए यहां हूँ।

<?php  
exec("ffmpegConverter_v0.2\consoleConversor\consoleConversor.exe -i a.mp3 -acodec libvorbis ap.ogg"); 
?> 

अब इस आप अभी भी रीडमी के दूसरे भाग की कोशिश कर सकते विफल रहता है। विंडोज़ सेवा को स्थापित करना कौन सा है। इसे मैन्युअल रूप से किया जाना है, जिसे in the ms knowledgebase समझाया गया है।

दुर्भाग्य serviceConversor केवल Windows XP के साथ परीक्षण किया गया है और मैं इसे अपने विंडोज 7 सिस्टम पर स्थापित नहीं कर सकता, लेकिन शायद आप अधिक भाग्य है।

अब इस आपसे सीधे बात कर installutil serviceConversor.exe जब आप cmd का उपयोग कर ffmpegConverter_v0.2\serviceConversor\ फ़ोल्डर में हैं कहते हैं, लेकिन संभावना है कि आप एक संदेश कह रही है कि InstallUtil नहीं पाया जा सका मिल जाएगा रहे हैं। उस मामले में आप पूरा पथ, जो आम तौर पर इनमें से किसी एक, भरा हुआ है, अपने नेट संस्करण के आधार पर और आप मेरे मामले में विंडो 7 32 या 64.

c:\Windows\Microsoft.NET\Framework\v2.0.50727\InstallUtil.exe 
c:\Windows\Microsoft.NET\Framework\v4.0.30319\InstallUtil.exe 
c:\Windows\Microsoft.NET\Framework64\v2.0.50727\InstallUtil.exe 
c:\Windows\Microsoft.NET\Framework64\v4.0.30319\InstallUtil.exe 

तो चल रहे हैं के साथ चला सकते हैं आदेश (serviceConversor फ़ोल्डर से)

c:\Windows\Microsoft.NET\Framework64\v4.0.30319\InstallUtil.exe serviceConversor.exe 
+0

आपकी त्रुटियों के पास php से कोई लेना देना नहीं है। इसे तब तक उपयोग करना बंद करें जब तक आप कनवर्टर को नहीं चलाते। विंकी + आर का प्रयोग करें और 'cmd' टाइप करें और एंटरर दबाएं। आउटपुट प्राप्त करने के लिए वहां अपने आदेश टाइप करें। इसके अलावा आपके पास ffmpeg इंस्टॉल है? –

+0

मुझे कमांड विंडो में किस कमांड को टाइप करना चाहिए? मैंने कोशिश की "सी: \ विंडोज \ माइक्रोसॉफ्ट।नेट \ फ्रेमवर्क \ v2.0.50727 \ InstallUtil.exe serviceConversor.exe "। क्या यह ठीक है? (मैंने 'एमपी 3' फ़ोल्डर में 'ffmpegConverter_v0.2' फ़ोल्डर रखा है जहां mp.php htdocs में रखा गया है) – user1844626

+0

कमांड विंडो मूल रूप से है 'exec' फ़ंक्शन के समान। केवल आपको प्रत्यक्ष आउटपुट मिलता है। तो आप इसे ffmpeg कन्वर्टर्स काम पर कौन सा कमांड करने का प्रयास करने के लिए उपयोग कर सकते हैं। मैंने कभी इसका उपयोग नहीं किया है, इसलिए मैं आपकी मदद नहीं कर सकता –

1

MP3-> OGG होगा

ffmpeg -i input.mp3 -ab 6400 output.ogg 

OGGDEC.EXE OGG-> एमपी 3

0,123,
OGGDEC.EXE myfile.ogg --stdout | LAME.EXE -V5 --vbr-new - myfile.mp3 
2

अपने आप प्रक्रिया में है और पृष्ठभूमि में इस पर अमल, अन्यथा आपके PHP स्क्रिप्ट, जबकि रूपांतरण पूरा करने के लिए इंतज़ार कर रखती हूँ।

कोड:

passthru("/usr/local/bin/ffmpeg -i 1.mp4 -vcodec libtheora -acodec libvorbistestjohn4545454.ogg 1> /path/to/logfile.txt 2>&1 &"); 
+0

स्पष्ट रूप से ओपी यूनिक्स बॉक्स का उपयोग नहीं कर रहा है। .. मुझे संदेह है कि/usr/local/bin/ffmpeg' मिलेगा। – eepp

संबंधित मुद्दे