Någon som vet ett annat sätt?
Det behöver inte vara något gratisalternativ.
Det som ska göras är att filer ska laddas upp, dessa ska konverteras till FLV.
15 svar · 1 072 visningar · startad av Inferis
Är det någon som känner till hur man kan konvertera filer till FLV med hjälp av ffmpeg?
Får det inte att fungera:
Dim objShell
Set objShell = CreateObject("WScript.Shell")
objShell.run "c:\ffmpeg.exe -i c:\inetpub\wwwroot\clock.avi -ar 22050 -ab 32 -f flv -s 320x240 -aspect 4:3 -y movie.flv"
Set objShell = Nothing
Har testat att ge IUSR fulla rättigheter. Rättigheter att exekvera program med.
Någon som vet ett annat sätt?
Det behöver inte vara något gratisalternativ.
Det som ska göras är att filer ska laddas upp, dessa ska konverteras till FLV.
Här har du ett liknande problem som löste sig:
http://www.webforum.nu/showthread.php?t=73292&page=1&pp=25&highlight=ffmpeg
colione skrev:
Här har du ett liknande problem som löste sig:
http://www.webforum.nu/showthread.php?t=73292&page=1&pp=25&highlight=ffmpeg
Jo, kollade på den lösningen.
Problemet är att ASPExec inte går att få tag på.
Sidan med dynuexec var inte tillgänglig igår. (Nu är den dock det ser jag)
Men han löste sitt problem med:
EDIT: Det har löst sig! =)
Det visade sig till slut att jag fick exekvera genom cmd.exe och sen köra på en extern mapp så gick det bra. Rättigheter mao. Stort tack till alla som engagerat sig och hjälpt mig!
Jag vet inte hur man kör ffmpeg genom cmd.exe? Då kanske han inte ens använde komponenten dynuexec?
Vad händer, får du ett felmeddelande?
Vad exakt är det inte som funkar, är det något problem med rättigheterna?
I så fall använd cmd för att ändra rättigheterna på filen(?)/programmet(?).
Glöm inte att ge IUSR_dittdatornamn fulla rättigheter. Du behöver inte alltid ha det så, men bara för att testa om det är felet.
Innan du gör något med ASP testa att göra det med cmd skriv ditt kommando där:
"c:\ffmpeg.exe -i c:\inetpub\wwwroot\clock.avi -ar 22050 -ab 32 -f flv -s 320x240 -aspect 4:3 -y movie.flv" i själva Kommandotolken (cmd) alltså. Om det funkar så betyder det att det är nåt fel med ASP.
EDIT:
Så här kör du den med cmd i ASP (såg precis att du sa att du inte visste hur):
Dim objShell
Set objShell = CreateObject("WScript.Shell")
objShell.run "cmd.exe ffmpeg.exe -i c:\inetpub\wwwroot\clock.avi -ar 22050 -ab 32 -f flv -s 320x240 -aspect 4:3 -y movie.flv"
Set objShell = Nothing
Ej testat koden, men härifrån ser det bra ut.
Så nu har du massor att exprimentera med.
Tack!
Ska kolla igenom vad som händer.
Det som hände innan var just ingenting. Inget felmeddelande heller.
Testade att köra från cmd.exe. Då fungerade det. Men inte över asp.
Vilka rättigheter ska sättas vart?
Mappen på målfilen?
cmd.exe?
Mappen där flv-filen ska hamna?
Testar denna koden och inget händer. Inget felmeddelande eller någonting.
Dim objShell
Set objShell = CreateObject("WScript.Shell")
objShell.run "cmd.exe ffmpeg.exe -i c:\upload\goldfish.avi -ar 22050 -ab 32 -f flv -s 320x240 -aspect 4:3 -y C:\konverterat\goldfish.flv"
Set objShell = Nothing
IUSR kontot måste ha skrivrättigheter på målmappe och läs rättigheter i upload.
Om du har tillgång till servern kan du ju läga till ett /k efter cmd.exe för att få den att stanna kvar efter utfört uppdrag och se om det dycker upp nåt fel.
Du kan även lägga till >output.txt efter hela kommandot, då sparas svaret i filen output.txt
Jag har gett IUSR fulla rättigheter på:
cmd.exe
C:\upload
C:\konverterat
Har tillgång till servern via Remote Desktop Connection.
Funkade inte heller:
Set objShell = CreateObject("WScript.Shell")
objShell.run "cmd.exe \k c:\ffmpeg.exe -i c:\upload\test.avi -ar 22050 -ab 32 -f flv -s 320x240 -aspect 4:3 -y C:\konverterat\test.flv C:\konverterat\output.txt"
Set objShell = Nothing
Skapas ingen textfil, ser ingen cmd.exe igång.
Ska man ange c:\ffmpeg.exe eller bara ffmpeg.exe?
du måste lägga till > innan textfilen
Händer ingenting med >output.txt heller
Kopiera det du skrev i cmd.exe (då det funkade) och klistra in det (exakt som det är) istället för texten jag markerade med rött
Set objShell = CreateObject("WScript.Shell")
objShell.run "cmd.exe [red]Skriv det här[/red]"
Set objShell = Nothing
Kom ihåg att du måste ge IUSR_dittdatornamn (inte bara IUSR) fulla rättigheter. Du kan ta reda på vad ditt datornamn är genom att:
högerklicka på den här datorn > egenskaper > Datornnamn (med XP)
högerklicka på den här datorn > egenskaper > och så står den där (med Vista)
En till sak varför skrev du /k före programmet som ska köras? Jag är inte en cmd expert, men jag undrar vad den har för effekt och om den har det eller om det bara var ett misstag.
IUSR_dittdatornamn = Det är väl Internet Guest Account??
Det har fulla rättigheter på:
C:\ffmpeg.exe
C:\WINDOWS\System32\cmd.exe
C:\upload
C:\konverterat
Koden jag kör nu (som fungerar från cmd.exe, men inte över asp)
Set objShell = CreateObject("WScript.Shell")
objShell.run "cmd.exe c:\ffmpeg.exe -i c:\upload\test.avi -ar 22050 -ab 32 -f flv -s 320x240 -aspect 4:3 -y C:\konverterat\test.flv"
Set objShell = Nothing
Fungerar!
Jag tog bort cm.exe
Dim objShell
Set objShell = CreateObject("WScript.Shell")
objShell.run "c:\ffmpeg.exe -i c:\upload\test.avi -ar 22050 -ab 32 -f flv -s 320x240 -aspect 4:3 -y C:\konverterat\test.flv"
Set objShell = Nothing
Fast när man kollar, så ser det ut som koden var från början?