---
title: "Problem med FFMPEG"
type: "forum-thread"
url: "https://www.webforum.nu/amne/linux-bsd/172213-problem-med-ffmpeg"
topic: "Linux & BSD"
topic_url: "https://www.webforum.nu/amne/linux-bsd"
author: "Guldstrand"
published: "2008-06-15T21:59:40.000Z"
updated: "2008-06-19T22:36:24.000Z"
replies: 21
views: 1429
page: 1
pages: 2
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/linux-bsd/172213-problem-med-ffmpeg"
---

# Problem med FFMPEG

_Sida 1 av 2._

## #1 — Guldstrand, 2008-06-15T21:59Z

Jag får inte scriptet nedan att fungera.   :l 

Får bara:

> 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:

> \[root@localhost \~\]# whereis ffmpeg.exe
> ffmpeg: /usr/bin/ffmpeg /usr/share/man/man1/ffmpeg.1.bz2

Är tacksam för ALL hjälp.   :birp 

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

Här är scriptet:

```php
<?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>
```

Permalänk: https://www.webforum.nu/p/172213

## #2 — Guldstrand, 2008-06-17T05:05Z

Ingen som vet..?

Permalänk: https://www.webforum.nu/p/2118690

## #3 — The_Hulk, 2008-06-17T06:20Z

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.

Permalänk: https://www.webforum.nu/p/2118693

## #4 — Guldstrand, 2008-06-17T13:50Z

> **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.   :x   :l 
(Får skylla på sömnbrist.)

Hur löser jag det då?

Permalänk: https://www.webforum.nu/p/2118753

## #5 — colione, 2008-06-17T13:54Z

du tar bort ffmpeg från /user/bin/ffmpeg

Permalänk: https://www.webforum.nu/p/2118754

## #6 — Guldstrand, 2008-06-17T17:53Z

> **colione skrev:**
>
> du tar bort ffmpeg från /user/bin/ffmpeg

Suck... verkar inte heller fungera/hjälpa.   :l   :( 
Får fortfarande:

> Något gick fel!

Permalänk: https://www.webforum.nu/p/2118801

## #7 — colione, 2008-06-17T19:56Z

Lägg till lite mer felhantering. Kolla exempelvis senaste felet, eller jobba med exceptions. php.net har mer information om båda sätten.

Permalänk: https://www.webforum.nu/p/2118822

## #8 — Guldstrand, 2008-06-17T20:33Z

Om jag skriver följande direkt i konsolen (använder putty), får jag följande:

> \[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?   :o

Permalänk: https://www.webforum.nu/p/2118834

## #9 — Gein, 2008-06-17T20:36Z

Lägg in 

```
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

Permalänk: https://www.webforum.nu/p/2118836

## #10 — colione, 2008-06-17T20:38Z

Läste du vad jag skrev?

> **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.

Permalänk: https://www.webforum.nu/p/2118837

## #11 — Guldstrand, 2008-06-17T20:43Z

> **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.    :r

Permalänk: https://www.webforum.nu/p/2118840

## #12 — Guldstrand, 2008-06-17T20:47Z

> **Gein skrev:**
>
> Lägg in 
>
> ```
> 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:

> 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".

Permalänk: https://www.webforum.nu/p/2118843

## #13 — Gein, 2008-06-17T20:56Z

Och vad är START för något kommando? Testa eventuellt att ta bort START från raden.

Permalänk: https://www.webforum.nu/p/2118847

## #14 — Guldstrand, 2008-06-17T21:03Z

Verkar fungera nu... **ÄNTLIGEN**.   :birp 
Det enda som inte verkar fungera, är att skapa en "screenshot" av filmen.
Någon som kan se felet?

```php
<?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.   :(

Permalänk: https://www.webforum.nu/p/2118849

## #15 — Guldstrand, 2008-06-18T16:51Z

Körde (i konsolen):

> \[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:

> 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'**

  :q

Permalänk: https://www.webforum.nu/p/2118989

## #16 — Guldstrand, 2008-06-18T21:15Z

Ingen som vet hur jag löser detta?  :(

Permalänk: https://www.webforum.nu/p/2119066

## #17 — Guldstrand, 2008-06-19T14:15Z

Är tacksam för hjälp.   :r

Permalänk: https://www.webforum.nu/p/2119173

## #18 — Gein, 2008-06-19T15:17Z

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.

Permalänk: https://www.webforum.nu/p/2119183

## #19 — Guldstrand, 2008-06-19T17:52Z

> **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...

> 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'

Permalänk: https://www.webforum.nu/p/2119205

## #20 — Gein, 2008-06-19T20:03Z

Jaha, missade det, sorry. Vet dock tyvärr inte varför du får det felet.

Permalänk: https://www.webforum.nu/p/2119219

---

Tråden på webben: https://www.webforum.nu/amne/linux-bsd/172213-problem-med-ffmpeg  
Nästa sida: https://www.webforum.nu/amne/linux-bsd/172213-problem-med-ffmpeg/page2.md
