webForum webForum sponsras med lina och serverplats av Binero AB

Gå tillbaka   webForum > Användning > Operativsystem & Program > Mac OS, Unix, Linux & BSD

Mac OS, Unix, Linux & BSD Hjälp, tips och tricks för alla som använder Mac, Unix, Linux osv..

Svar
 
Trådverktyg Visningsalternativ
Äldre 2008-06-15, 22:59   #1
Guldstrand
Medlem
 
Guldstrands avatar
 
Registrerad: 2004-07-22
Ort: Örebro
Inlägg: 1 239
Lösningar: 1
förvånad Problem med FFMPEG

Jag får inte scriptet nedan att fungera.

Får bara:
Citat:
Något gick fel!
Finns det någat exempel -och/eller sätt för att se om ffmpeg är installerat KORREKT!?

I konsolen (använder putty för att komma åt servern från min windows-burk), ser jag följande:
Citat:
[root@localhost ~]# whereis ffmpeg.exe
ffmpeg: /usr/bin/ffmpeg /usr/share/man/man1/ffmpeg.1.bz2
Är tacksam för ALL hjälp.

(Kör Mandriva linux på en egen server.)

Här är scriptet:
PHP-kod:
<?php
 
function convert_video($source$format$ffmpeg$quality$width$height$bitrate$channel$screenshot$seek$pic_w$pic_h) {
 
$screen $width .'x'$height;
$pic_size $pic_w .'x'$pic_h;
$seek date("H:i:s"strtotime("00:00:00 +$seek seconds"));
$destination preg_replace('/\.[a-z]{2,4}$/'''$source);
 
$cmd "-qscale $quality -s $screen -ab $bitrate -ac $channel";
 
   
// konvertera rullen...
   
exec("START $ffmpeg/ffmpeg -i $source $cmd {$destination}.$format");
   
   
   
// kontrollera så att den konverterade filen verkligen finns...
   /////////////////////////////////////////////////////////////////////////////////////////////////////////////
   
if (file_exists("{$destination}.$format")) {
   
   
         
// Ta en screendump av filmen och spara som png
         /////////////////////////////////////////////////////////////////////////////////////////////////////////////
         
if ($screenshot) {
      
            
exec("START $ffmpeg/ffmpeg -i $source -vcodec png -ss $seek -s {$pic_size} -vframes 1 {$destination}_%d.png");
         
            
$screen $destination "_1.png";
         
         } else {
      
            
$screen false;
      
         }
      
      
      return array(
'video' => "{$destination}.$format"'screen' => $screen);
   
   
   } else {
   
      return 
false;
      
   }
 
 
}
 
 
 
if (isset(
$_POST['submit'])) {
 
 
$movie $_FILES['movie']['name'];
$path "filmer/$movie"// vart ska filmen sparas?
 
 
   // Flytta rullen till $path
   
if(move_uploaded_file($_FILES['movie']['tmp_name'], $path)) {
 
      
$type 'flv';         // format att konvertera till
      
$ffmpeg '/user/bin/ffmpeg';   // Sökväg till mappen där ffmpeg ligger
      
$q 10;            // Kvalité på konverteringen (0=bäst, 31=sämst)
      
$w 320;            // Bredd i px
      
$h 240;            // Höjd i px
      
$b 96;            // Kvalite på ljudet: 96 kb/s
      
$c 1;               // Kanaler (1=mono, 2=stereo)
      
$s true;            // Ta screenshot? (boolean)
      
$t 3;               // hur många sekunder in i filmen ska screenshot´en tas?
      
$s_w 120;            // screenshot-bredd i px
      
$s_h 90;            // screenshot-höjd i px
      
      
$convert convert_video($path$type$ffmpeg$q$w$h$b$c$s$t$s_w$s_h);
 
         
// Lyckades konverteringen?
         
if ($convert) {
         
            
$msg "<img src=\"$convert[screen]\" alt=\"\" /><br />
            <a href=\"$convert[video]\">"
basename($convert['video']) ."</a> - Hårdrock, allt ok!";
         
         } else {
         
            
$msg "Något gick fel!";
         
         }
   
   
   
      
// Radera den uppladdade filmen
      
unlink($path);
      
   } else {
   
      
$msg "A problem occured while uploading $movie!";
   
   }
   
   echo 
$msg;
   
}
 
 
?><form method="post" action="" enctype="multipart/form-data">
<input type="file" name="movie" /><br />
<input type="submit" name="submit" value="Upload Clip!" />
</form>
__________________
Det jag inte redan vet vill jag gärna lära mig...
Guldstrand besöker forumet just nu   Svara med citat
Äldre 2008-06-17, 06:05   #2
Guldstrand
Medlem
 
Guldstrands avatar
 
Registrerad: 2004-07-22
Ort: Örebro
Inlägg: 1 239
Lösningar: 1
Ingen som vet..?
__________________
Det jag inte redan vet vill jag gärna lära mig...
Guldstrand besöker forumet just nu   Svara med citat
Äldre 2008-06-17, 07:20   #3
The_Hulk
Medlem
 
Registrerad: 2003-06-25
Inlägg: 1 914
Lösningar: 71
när du kör whereis får du reda på att ffmpeg finns i /usr/bin/ där den hela sökvägen är /usr/bin/ffmpeg men när du försöker använda det i ditt skript skriver du /usr/bin/ffmpeg/ som path och /usr/bin/ffmpeg/ffmpeg som hela sökvägen.
The_Hulk besöker inte forumet just nu   Svara med citat
Äldre 2008-06-17, 14:50   #4
Guldstrand
Medlem
 
Guldstrands avatar
 
Registrerad: 2004-07-22
Ort: Örebro
Inlägg: 1 239
Lösningar: 1
Citat:
The_Hulk skrev:
när du kör whereis får du reda på att ffmpeg finns i /usr/bin/ där den hela sökvägen är /usr/bin/ffmpeg men när du försöker använda det i ditt skript skriver du /usr/bin/ffmpeg/ som path och /usr/bin/ffmpeg/ffmpeg som hela sökvägen.
Sorry.. men jag förstår inte riktigt nu.
(Får skylla på sömnbrist.)

Hur löser jag det då?
__________________
Det jag inte redan vet vill jag gärna lära mig...
Guldstrand besöker forumet just nu   Svara med citat
Äldre 2008-06-17, 14:54   #5
colione
Forumtekniker
 
Registrerad: 2001-06-13
Ort: Stockholm
Inlägg: 3 385
Lösningar: 198
du tar bort ffmpeg från /user/bin/ffmpeg
__________________
Yes, I Blag!
colione besöker inte forumet just nu   Svara med citat
Äldre 2008-06-17, 18:53   #6
Guldstrand
Medlem
 
Guldstrands avatar
 
Registrerad: 2004-07-22
Ort: Örebro
Inlägg: 1 239
Lösningar: 1
Citat:
colione skrev:
du tar bort ffmpeg från /user/bin/ffmpeg
Suck... verkar inte heller fungera/hjälpa.
Får fortfarande:
Citat:
Något gick fel!
__________________
Det jag inte redan vet vill jag gärna lära mig...
Guldstrand besöker forumet just nu   Svara med citat
Äldre 2008-06-17, 20:56   #7
colione
Forumtekniker
 
Registrerad: 2001-06-13
Ort: Stockholm
Inlägg: 3 385
Lösningar: 198
Lägg till lite mer felhantering. Kolla exempelvis senaste felet, eller jobba med exceptions. php.net har mer information om båda sätten.
__________________
Yes, I Blag!
colione besöker inte forumet just nu   Svara med citat
Äldre 2008-06-17, 21:33   #8
Guldstrand
Medlem
 
Guldstrands avatar
 
Registrerad: 2004-07-22
Ort: Örebro
Inlägg: 1 239
Lösningar: 1
Om jag skriver följande direkt i konsolen (använder putty), får jag följande:

Citat:
[root@localhost ~]# ffmpeg -i /home/var/www/***/filmer/bilen.avi /home/var/www/***/filmer/test.avi
ffmpeg version 0.4.9-pre1, build 4718, Copyright (c) 2000-2004 Fabrice Bellard
built on Dec 10 2004 17:35:43, gcc: 3.4.3 (Mandrakelinux 10.2 3.4.3-1mdk)
Input #0, avi, from '/home/var/www/***/filmer/bilen.avi':
Duration: 00:00:00.0, bitrate: 1238956 kb/s
Stream #0.0: Video: mpeg4, 160x128, 12.36 fps
Output #0, avi, to '/home/var/www/***/filmer/test.avi':
Stream #0.0: Video: mpeg4, 160x128, 12.36 fps, q=2-31, 200 kb/s
Stream mapping:
Stream #0.0 -> #0.0
Press [q] to stop encoding
frame= 1892 q=3.0 Lsize= 3828kB time=153.0 bitrate= 204.9kbits/s
video:3779kB audio:0kB global headers:0kB muxing overhead 1.317676%
..varför fungerar det då inte direkt i scriptet?
__________________
Det jag inte redan vet vill jag gärna lära mig...
Guldstrand besöker forumet just nu   Svara med citat
Äldre 2008-06-17, 21:36   #9
Gein
Medlem
 
Geins avatar
 
Registrerad: 2000-09-07
Ort: Uppsala
Inlägg: 4 849
Lösningar: 69
Lägg in
Kod:
echo "START $ffmpeg/ffmpeg -i $source $cmd {$destination}.$format"
Alldeles före exec(...)-raden då så får du se vad som faktiskt körs. Men har du verkligen skrivit rätt när du skriver /user/bin/ffmpeg. Jag gissar att det ska vara /usr/bin/ffmpeg
__________________
The future is today, worry about it tomorrow
Gein besöker inte forumet just nu   Svara med citat
Äldre 2008-06-17, 21:38   #10
colione
Forumtekniker
 
Registrerad: 2001-06-13
Ort: Stockholm
Inlägg: 3 385
Lösningar: 198
Läste du vad jag skrev?

Citat:
colione skrev:
Lägg till lite mer felhantering. Kolla exempelvis senaste felet, eller jobba med exceptions. php.net har mer information om båda sätten.
Det kan bero på behörighetsfel, det kan bero på att du skickar argumenten fel...att jorden är rund eller att flickan har bröst. Lite svårt att säga om du inte hjälper till med felsökningen.
__________________
Yes, I Blag!
colione besöker inte forumet just nu   Svara med citat
Äldre 2008-06-17, 21:43   #11
Guldstrand
Medlem
 
Guldstrands avatar
 
Registrerad: 2004-07-22
Ort: Örebro
Inlägg: 1 239
Lösningar: 1
Citat:
colione skrev:
Läste du vad jag skrev?



Det kan bero på behörighetsfel, det kan bero på att du skickar argumenten fel...att jorden är rund eller att flickan har bröst. Lite svårt att säga om du inte hjälper till med felsökningen.
Jo, jag läste vad du skrev.
Vet dock inte HUR jag ska kunna felsöka det hela.
__________________
Det jag inte redan vet vill jag gärna lära mig...
Guldstrand besöker forumet just nu   Svara med citat
Äldre 2008-06-17, 21:47   #12
Guldstrand
Medlem
 
Guldstrands avatar
 
Registrerad: 2004-07-22
Ort: Örebro
Inlägg: 1 239
Lösningar: 1
Citat:
Gein skrev:
Lägg in
Kod:
echo "START $ffmpeg/ffmpeg -i $source $cmd {$destination}.$format"
Alldeles före exec(...)-raden då så får du se vad som faktiskt körs. Men har du verkligen skrivit rätt när du skriver /user/bin/ffmpeg. Jag gissar att det ska vara /usr/bin/ffmpeg
Då fick jag:
Citat:
START /usr/bin/ffmpeg/ffmpeg -i filmer/1.mpg -qscale 10 -s 320x240 -ab 96 -ac 1 filmer/1.flvNågot gick fel!
P.s. Skrev fel innan, ska såklart vara "/usr/bin/ffmpeg".
__________________
Det jag inte redan vet vill jag gärna lära mig...
Guldstrand besöker forumet just nu   Svara med citat
Äldre 2008-06-17, 21:56   #13
Gein
Medlem
 
Geins avatar
 
Registrerad: 2000-09-07
Ort: Uppsala
Inlägg: 4 849
Lösningar: 69
Och vad är START för något kommando? Testa eventuellt att ta bort START från raden.
__________________
The future is today, worry about it tomorrow
Gein besöker inte forumet just nu   Svara med citat
Äldre 2008-06-17, 22:03   #14
Guldstrand
Medlem
 
Guldstrands avatar
 
Registrerad: 2004-07-22
Ort: Örebro
Inlägg: 1 239
Lösningar: 1
Verkar fungera nu... ÄNTLIGEN.
Det enda som inte verkar fungera, är att skapa en "screenshot" av filmen.
Någon som kan se felet?

PHP-kod:
<?php
 
function convert_video($source$format$ffmpeg$quality$width$height$bitrate$channel$screenshot$seek$pic_w$pic_h) {
 
$screen $width .'x'$height;
$pic_size $pic_w .'x'$pic_h;
$seek date("H:i:s"strtotime("00:00:00 +$seek seconds"));
$destination preg_replace('/\.[a-z]{2,4}$/'''$source);
 
$cmd "-qscale $quality -s $screen -ab $bitrate -ac $channel";
 
   
// konvertera rullen...
   
echo ("ffmpeg -i $source $cmd {$destination}.$format");
   
exec("ffmpeg -i $source $cmd {$destination}.$format");
   
   
   
// kontrollera så att den konverterade filen verkligen finns...
   /////////////////////////////////////////////////////////////////////////////////////////////////////////////
   
if (file_exists("{$destination}.$format")) {
   
   
         
// Ta en screendump av filmen och spara som png
         /////////////////////////////////////////////////////////////////////////////////////////////////////////////
         
if ($screenshot) {
      
            echo(
"ffmpeg -i $source -vcodec png -ss $seek -s {$pic_size} -vframes 1 {$destination}_%d.png");
            
exec("ffmpeg -i $source -vcodec png -ss $seek -s {$pic_size} -vframes 1 {$destination}_%d.png");
         
            
$screen $destination "_1.png";
         
         } else {
      
            
$screen false;
      
         }
      
      
      return array(
'video' => "{$destination}.$format"'screen' => $screen);
   
   
   } else {
   
      return 
false;
      
   }
 
 
}
 
 
 
if (isset(
$_POST['submit'])) {
 
 
$movie $_FILES['movie']['name'];
$path "filmer/$movie"// vart ska filmen sparas?
 
 
   // Flytta rullen till $path
   
if(move_uploaded_file($_FILES['movie']['tmp_name'], $path)) {
 
      
$type 'flv';         // format att konvertera till
      
$ffmpeg '';   // Sökväg till mappen där ffmpeg ligger
      
$q 10;            // Kvalité på konverteringen (0=bäst, 31=sämst)
      
$w 320;            // Bredd i px
      
$h 240;            // Höjd i px
      
$b 96;            // Kvalite på ljudet: 96 kb/s
      
$c 1;               // Kanaler (1=mono, 2=stereo)
      
$s true;            // Ta screenshot? (boolean)
      
$t 3;               // hur många sekunder in i filmen ska screenshot´en tas?
      
$s_w 120;            // screenshot-bredd i px
      
$s_h 90;            // screenshot-höjd i px
      
      
$convert convert_video($path$type$ffmpeg$q$w$h$b$c$s$t$s_w$s_h);
 
         
// Lyckades konverteringen?
         
if ($convert) {
         
            
$msg "<img src=\"$convert[screen]\" alt=\"\" /><br />
            <a href=\"$convert[video]\">"
basename($convert['video']) ."</a> - Hårdrock, allt ok!";
         
         } else {
         
            
$msg "Något gick fel!";
         
         }
   
   
   
      
// Radera den uppladdade filmen
      
unlink($path);
      
   } else {
   
      
$msg "A problem occured while uploading $movie!";
   
   }
   
   echo 
$msg;
   
}

?>

<form method="post" action="filmer_test.php" enctype="multipart/form-data">
<input type="file" name="movie" size="40" /><br />
<input type="submit" name="submit" value="Ladda upp film!" />
</form>
EDIT: Hmm.. verkar inte fungera att konvertera avi-filer.
__________________
Det jag inte redan vet vill jag gärna lära mig...
Guldstrand besöker forumet just nu   Svara med citat
Äldre 2008-06-18, 17:51   #15
Guldstrand
Medlem
 
Guldstrands avatar
 
Registrerad: 2004-07-22
Ort: Örebro
Inlägg: 1 239
Lösningar: 1
Körde (i konsolen):
Citat:
[root@localhost ~]# ffmpeg -i /home/var/www/***/filmer/bilen .mpg -vcodec png -ss 00:00:05 -s 140x110 -vframes 1 /home/var/www/***/f ilmer/test.png
För att ta en screenshot på 140x110, 5 sekunder in i filmen.
..och fick:
Citat:
ffmpeg version 0.4.9-pre1, build 4718, Copyright (c) 2000-2004 Fabrice Bellard
built on Dec 10 2004 17:35:43, gcc: 3.4.3 (Mandrakelinux 10.2 3.4.3-1mdk)
Input #0, mpeg, from '/home/var/www/***/filmer/bilen.mpg':
Duration: 00:00:05.3, bitrate: 1581 kb/s
Stream #0.0: Video: mpeg1video, 320x236, 29.97 fps
Stream #0.1: Audio: mp2, 44100 Hz, mono, 32 kb/s
Unknown video codec 'png'
__________________
Det jag inte redan vet vill jag gärna lära mig...
Guldstrand besöker forumet just nu   Svara med citat
Äldre 2008-06-18, 22:15   #16
Guldstrand
Medlem
 
Guldstrands avatar
 
Registrerad: 2004-07-22
Ort: Örebro
Inlägg: 1 239
Lösningar: 1
Ingen som vet hur jag löser detta?
__________________
Det jag inte redan vet vill jag gärna lära mig...
Guldstrand besöker forumet just nu   Svara med citat
Äldre 2008-06-19, 15:15   #17
Guldstrand
Medlem
 
Guldstrands avatar
 
Registrerad: 2004-07-22
Ort: Örebro
Inlägg: 1 239
Lösningar: 1
Är tacksam för hjälp.
__________________
Det jag inte redan vet vill jag gärna lära mig...
Guldstrand besöker forumet just nu   Svara med citat
Äldre 2008-06-19, 16:17   #18
Gein
Medlem
 
Geins avatar
 
Registrerad: 2000-09-07
Ort: Uppsala
Inlägg: 4 849
Lösningar: 69
Du får nog göra lite mer efterforskningar vad som inte fungerar mer än att bara skriva "det fungerar inte".
Prova kör exakt samma kommando i ett konsolfönster, som du kör via php-skriptet.
__________________
The future is today, worry about it tomorrow
Gein besöker inte forumet just nu   Svara med citat
Äldre 2008-06-19, 18:52   #19
Guldstrand
Medlem
 
Guldstrands avatar
 
Registrerad: 2004-07-22
Ort: Örebro
Inlägg: 1 239
Lösningar: 1
Citat:
Gein skrev:
Du får nog göra lite mer efterforskningar vad som inte fungerar mer än att bara skriva "det fungerar inte".
Prova kör exakt samma kommando i ett konsolfönster, som du kör via php-skriptet.
Var ju det jag gjorde ovan, och fick...
Citat:
ffmpeg version 0.4.9-pre1, build 4718, Copyright (c) 2000-2004 Fabrice Bellard
built on Dec 10 2004 17:35:43, gcc: 3.4.3 (Mandrakelinux 10.2 3.4.3-1mdk)
Input #0, mpeg, from '/home/var/www/***/filmer/bilen.mpg':
Duration: 00:00:05.3, bitrate: 1581 kb/s
Stream #0.0: Video: mpeg1video, 320x236, 29.97 fps
Stream #0.1: Audio: mp2, 44100 Hz, mono, 32 kb/s
Unknown video codec 'png'
__________________
Det jag inte redan vet vill jag gärna lära mig...
Guldstrand besöker forumet just nu   Svara med citat
Äldre 2008-06-19, 21:03   #20
Gein
Medlem
 
Geins avatar
 
Registrerad: 2000-09-07
Ort: Uppsala
Inlägg: 4 849
Lösningar: 69
Jaha, missade det, sorry. Vet dock tyvärr inte varför du får det felet.
__________________
The future is today, worry about it tomorrow
Gein besöker inte forumet just nu   Svara med citat
Äldre 2008-06-19, 21:27   #21
colione
Forumtekniker
 
Registrerad: 2001-06-13
Ort: Stockholm
Inlägg: 3 385
Lösningar: 198
Med största sannolikhet beror det på att ffmpeg är kompilerat utan png-stöd.
Med tanke på åldern på ffmpeg versionen och när det är kompilerat så skulle jag nog sett till att uppgradera.

Vad ger:
ffmpeg -formats

ger vad?
__________________
Yes, I Blag!
colione besöker inte forumet just nu   Svara med citat
Äldre 2008-06-19, 23:36   #22
Guldstrand
Medlem
 
Guldstrands avatar
 
Registrerad: 2004-07-22
Ort: Örebro
Inlägg: 1 239
Lösningar: 1
Citat:
colione skrev:
Med största sannolikhet beror det på att ffmpeg är kompilerat utan png-stöd.
Med tanke på åldern på ffmpeg versionen och när det är kompilerat så skulle jag nog sett till att uppgradera.

Vad ger:
ffmpeg -formats

ger vad?
Fick upp detta gällande bildformat:
Citat:
Image formats:
D pnm
E pbm
E pgm
E ppm
DE pam
DE pgmyuv
DE yuv
DE png
DE jpeg
DE gif
DE sgi
EDIT: Sedan verkar det inte finnas en ny version av FFMPEG för mandriva linux.
__________________
Det jag inte redan vet vill jag gärna lära mig...

Senast redigerad av Guldstrand, 2008-06-19 klockan 23:50
Guldstrand besöker forumet just nu   Svara med citat
Svar
webForum > Användning > Operativsystem & Program > Mac OS, Unix, Linux & BSD

Trådverktyg
Visningsalternativ

Forumregler
Du får inte posta nya trådar
Du får inte posta svar
Du får inte bifoga filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är av
HTML-kod är av

Forumhopp


Alla tider är i GMT +1. Klockan är nu 06:29.


Powered by: vBulletin Version 3.8.6
Copyright © webForum