Mencoder en Ffmpeg

Pagina: 1
Acties:
  • 613 views

Onderwerpen


Acties:
  • 0 Henk 'm!

  • tom_swinkels
  • Registratie: Februari 2010
  • Laatst online: 09-12-2024
Beste,

Ik loop al een paar dagen te proberen om Mencoder en Ffmpeg aan de praat te krijgen! En het is nog steeds niet gelukt.

Ik heb geen SSH verbinding dus daar kan ik ook niet mee testen, ik heb wel Mencoder en Ffmpeg laten installeeren door mijn host.

Wat ik nu probeer is via php exec() een commando uit te voeren, dit heb ik al op verschillende manieren geprobeert ook met simpele dingen zoals hier op tweakers ook al verschillende topic's staan alleen deze werken ook niet.

Ik gebruik momenteel het volgende script:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php

    define('FFMPEG_LIBRARY', '/usr/bin/mencoder'); 
    $exec_string = FFMPEG_LIBRARY.' mf:////home/sites/www.siris.nl/test.jpg -mf w=800:h=600:fps=25:type=jpg -ovc lavc -lavcopts vcodec=mpeg4:mbd=2:trell -oac copy -o /home/sites/www.siris.nl/video.avi'; 
    exec($exec_string, $command_output); //where exxc is the command used to execute shell command in php 

    define('FFMPEG_LIBRARY', '/usr/bin/ffmpeg'); 
    $exec_string = FFMPEG_LIBRARY.' -y -i /home/sites/www.siris.nl/audio.mp3 -vn -acodec copy -i video.avi -an -vcodec copy -map 0:1 -map 1:0 -b 2500 /home/sites/www.siris.nl/video.avi'; 
    exec($exec_string, $command_output2); //where exxc is the command used to execute shell command in php 
    
    print_r($command_output);
 
     echo '<br /><br />';
 
     print_r($command_output2);
?>


En wat ik terug krijg van php is:

code:
1
2
3
Array ( [0] => MEncoder 2:1.0~rc2-0ubuntu13.1 (C) 2000-2007 MPlayer Team [1] => CPU: Intel(R) Core(TM)2 Quad CPU Q6600 @ 2.40GHz (Family: 6, Model: 15, Stepping: 11) [2] => CPUflags: Type: 6 MMX: 1 MMX2: 1 3DNow: 0 3DNow2: 0 SSE: 1 SSE2: 1 [3] => Compiled with runtime CPU detection. [4] => success: format: 16 data: 0x0 - 0x0 [5] => MF file format detected. [6] => [mf] search expr: //home/sites/www.siris.nl/test.jpg* [7] => [mf] number of files: 1 (8) [8] => VIDEO: [IJPG] 800x600 24bpp 25.000 fps 0.0 kbps ( 0.0 kbyte/s) [9] => [V] filefmt:16 fourcc:0x47504A49 size:800x600 fps:25.00 ftime:=0.0400 [10] => [11] => Exiting... ) 

Array ( [0] => MEncoder 2:1.0~rc2-0ubuntu13.1 (C) 2000-2007 MPlayer Team [1] => CPU: Intel(R) Core(TM)2 Quad CPU Q6600 @ 2.40GHz (Family: 6, Model: 15, Stepping: 11) [2] => CPUflags: Type: 6 MMX: 1 MMX2: 1 3DNow: 0 3DNow2: 0 SSE: 1 SSE2: 1 [3] => Compiled with runtime CPU detection. [4] => [5] => Exiting... (error parsing command line) )


Is er iemand die mij kan vertellen wat ik fout doe? Of die mij kan vertellen hoe ik er achter kan komen wat ik fout doe?

Ik heb verder geen ervaring met linux etc..

Acties:
  • 0 Henk 'm!

  • Feanathiel
  • Registratie: Juni 2007
  • Niet online

Feanathiel

Cup<Coffee>

Je definieert twee maal dezelfde constante. Wat je terug krijgt van PHP laat dit al zien, namelijk twee keer mplayer. De tweede zou eigenlijk ffmpeg moeten zijn. Heb je de error_reporting al eens op E_ALL gezet? Dit zou gewoon verteld moeten worden door PHP eigenlijk.

Acties:
  • 0 Henk 'm!

  • StM
  • Registratie: Februari 2005
  • Laatst online: 12-09 12:17

StM

is : niet een waarde die je moet escapen op de shell?

Kijk hier eens naar:

http://nl.php.net/manual/en/function.escapeshellcmd.php
http://nl.php.net/manual/en/function.escapeshellarg.php

Acties:
  • 0 Henk 'm!

  • Hagar
  • Registratie: Februari 2001
  • Laatst online: 20-03 20:39

Hagar

Diabootic

Daarnaast geeft exec geen error output terug dus je kan zo niet zien wat er misgaat met het commando zelf.
Gebruik hiervoor I/O redirection exec($exec_string . " 2>&1", $output) of ga aan de slag met proc_open.

Nu ook zonder stropdas


Acties:
  • 0 Henk 'm!

  • tom_swinkels
  • Registratie: Februari 2010
  • Laatst online: 09-12-2024
Hagar schreef op dinsdag 20 juli 2010 @ 15:47:
Daarnaast geeft exec geen error output terug dus je kan zo niet zien wat er misgaat met het commando zelf.
Gebruik hiervoor I/O redirection exec($exec_string . " 2>&1", $output) of ga aan de slag met proc_open.
Oke gedaan ik heb nu 2 aparte pagina's gemaakt zodat ik de output goed terug krijg.

Van mencoder krijg ik nu:

code:
1
Array ( [0] => MEncoder 2:1.0~rc2-0ubuntu13.1 (C) 2000-2007 MPlayer Team [1] => CPU: Intel(R) Core(TM)2 Quad CPU Q6600 @ 2.40GHz (Family: 6, Model: 15, Stepping: 11) [2] => CPUflags: Type: 6 MMX: 1 MMX2: 1 3DNow: 0 3DNow2: 0 SSE: 1 SSE2: 1 [3] => Compiled with runtime CPU detection. [4] => get_path("config") problem [5] => success: format: 16 data: 0x0 - 0x0 [6] => MF file format detected. [7] => [mf] search expr: /home/sites/www.siris.nl/web/test.jpg* [8] => [mf] number of files: 1 (8) [9] => VIDEO: [IJPG] 800x600 24bpp 25.000 fps 0.0 kbps ( 0.0 kbyte/s) [10] => [V] filefmt:16 fourcc:0x47504A49 size:800x600 fps:25.00 ftime:=0.0400 [11] => File not found: '/home/sites/www.siris.nl/video.avi' [12] => Failed to open /home/sites/www.siris.nl/video.avi. [13] => Cannot open output file '/home/sites/www.siris.nl/video.avi'. [14] => [15] => Exiting... )


Van ffmpeg krijg ik nu:

code:
1
Array ( [0] => FFmpeg version SVN-rUNKNOWN, Copyright (c) 2000-2007 Fabrice Bellard, et al. [1] => configuration: --enable-gpl --enable-pp --enable-swscaler --enable-pthreads --enable-libvorbis --enable-libtheora --enable-libogg --enable-libgsm --enable-dc1394 --disable-debug --enable-shared --prefix=/usr [2] => libavutil version: 1d.49.3.0 [3] => libavcodec version: 1d.51.38.0 [4] => libavformat version: 1d.51.10.0 [5] => built on Apr 23 2010 15:36:59, gcc: 4.2.4 (Ubuntu 4.2.4-1ubuntu3) [6] => Input #0, mp3, from '/home/sites/www.siris.nl/audio.mp3': [7] => Duration: 00:07:12.6, start: 0.000000, bitrate: 127 kb/s [8] => Stream #0.0: Audio: mp3, 44100 Hz, stereo, 128 kb/s [9] => video.avi: I/O error occured [10] => Usually that means that input file is truncated and/or corrupted. )

Acties:
  • 0 Henk 'm!

  • Feanathiel
  • Registratie: Juni 2007
  • Niet online

Feanathiel

Cup<Coffee>

Door eerst het eerste script uitgevoerd te hebben, is de oude video.avi verwijderd. Daarna heeft er een fout opgetreden, waardoor het nieuwe bestand niet meer is aangemaakt. De foutmelding is daar vrij duidelijk in.

File not found: '/home/sites/www.siris.nl/video.avi'

Acties:
  • 0 Henk 'm!

  • tom_swinkels
  • Registratie: Februari 2010
  • Laatst online: 09-12-2024
Feanathiel schreef op dinsdag 20 juli 2010 @ 15:59:
Door eerst het eerste script uitgevoerd te hebben, is de oude video.avi verwijderd. Daarna heeft er een fout opgetreden, waardoor het nieuwe bestand niet meer is aangemaakt. De foutmelding is daar vrij duidelijk in.

File not found: '/home/sites/www.siris.nl/video.avi'
Oke sorry over het hoofd gezien. Dat klopt maar als het goed is maakt mencoder video.avi aan? Want hij maakt van het .jpg bestand een .avi bestand?

En daarna zet ffmpeg er een .mp3 onder?

Acties:
  • 0 Henk 'm!

  • Feanathiel
  • Registratie: Juni 2007
  • Niet online

Feanathiel

Cup<Coffee>

Ffmpeg is de boosdoender in dit geval. Je opent hierbij video.avi en je overschrijft hetzelfde bestand ook direct. Opzich niet zo'n probleem, totdat het fout gaat. De sleutel is dan ook om een nieuw bestand hiervoor aan te maken en het origineel pas te verwijderen wanneer je denkt dat je klaar bent (of te bewaren voor later gebruik).

Kijk uiteraard ook naar de mogelijkheden die hierboven al genoemd zijn. Je zult moeten 'escapen' voor de veiligheid. Anders zou er namelijk een kwaadwillende persoon zomaar elk commando kunnen uitvoeren.

Acties:
  • 0 Henk 'm!

  • tom_swinkels
  • Registratie: Februari 2010
  • Laatst online: 09-12-2024
Feanathiel schreef op dinsdag 20 juli 2010 @ 16:09:
Ffmpeg is de boosdoender in dit geval. Je opent hierbij video.avi en je overschrijft hetzelfde bestand ook direct. Opzich niet zo'n probleem, totdat het fout gaat. De sleutel is dan ook om een nieuw bestand hiervoor aan te maken en het origineel pas te verwijderen wanneer je denkt dat je klaar bent (of te bewaren voor later gebruik).

Kijk uiteraard ook naar de mogelijkheden die hierboven al genoemd zijn. Je zult moeten 'escapen' voor de veiligheid. Anders zou er namelijk een kwaadwillende persoon zomaar elk commando kunnen uitvoeren.
Als ik alleen mencoder uitvoer dan zegt hij nog steeds dat hij die file niet vind? Maar hij moet die file toch ook niet vinden? Hij moet toch de jpg afbeelding omzetten naar een .avi bestand? En de 2de script gaat de audio er pas onder zetten?

code:
1
2
3
4
5
6
7
8
<?php

    define('FFMPEG_LIBRARY', '/usr/bin/mencoder'); 
    $exec_string = FFMPEG_LIBRARY.' mf:///home/sites/www.siris.nl/web/test.jpg -mf w=800:h=600:fps=25:type=jpg -ovc lavc -lavcopts vcodec=mpeg4:mbd=2:trell -oac copy -o /home/sites/www.siris.nl/video.avi'; 
    exec($exec_string . " 2>&1", $output); //where exxc is the command used to execute shell command in php 

    print_r($output);
?>

Acties:
  • 0 Henk 'm!

  • Feanathiel
  • Registratie: Juni 2007
  • Niet online

Feanathiel

Cup<Coffee>

Het ziet er naar uit dat ook de volgende persoon daar last van heeft, waar nog geen oplossing voor is gevonden. Een alternatief dat je zou kunnen gebruiken is:

code:
1
ffmpeg -i image.jpg -i audio.mp3 -s 800x600 -vcodec mpeg4 -mbd 2 -trellis 1 -acodec copy -b 2500 output.avi


In dat geval zou je het in slechts één commando kunnen uitvoeren. Voor de rest laat ik het nog even open voor andere personen, die zullen er vast meer vanaf weten.

Acties:
  • 0 Henk 'm!

  • tom_swinkels
  • Registratie: Februari 2010
  • Laatst online: 09-12-2024
Feanathiel schreef op dinsdag 20 juli 2010 @ 18:44:
Het ziet er naar uit dat ook de volgende persoon daar last van heeft, waar nog geen oplossing voor is gevonden. Een alternatief dat je zou kunnen gebruiken is:

code:
1
ffmpeg -i image.jpg -i audio.mp3 -s 800x600 -vcodec mpeg4 -mbd 2 -trellis 1 -acodec copy -b 2500 output.avi


In dat geval zou je het in slechts één commando kunnen uitvoeren. Voor de rest laat ik het nog even open voor andere personen, die zullen er vast meer vanaf weten.
Oke, ik voer momenteel het volgende script uit:

code:
1
2
3
4
5
6
7
8
<?php

    define('FFMPEG_LIBRARY', '/usr/bin/ffmpeg'); 
    $exec_string = FFMPEG_LIBRARY.' -i /home/sites/www.siris.nl/web/ffmpeg/image.jpg -i /home/sites/www.siris.nl/web/ffmpeg/audio.mp3 -s 800x600 -vcodec mpeg4 -mbd 2 -trellis 1 -acodec copy -b 2500 /home/sites/www.siris.nl/web/ffmpeg/output.avi'; 
    exec($exec_string . " 2>&1", $output); //where exxc is the command used to execute shell command in php 

    print_r($output);
?>


En hij zegt nu dat hij de image niet vind? Terwijl die er wel staat?

Hier is de afbeelding te vinden: http://www.siris.nl/ffmpeg/image.jpg

code:
1
Array ( [0] => FFmpeg version SVN-rUNKNOWN, Copyright (c) 2000-2007 Fabrice Bellard, et al. [1] => configuration: --enable-gpl --enable-pp --enable-swscaler --enable-pthreads --enable-libvorbis --enable-libtheora --enable-libogg --enable-libgsm --enable-dc1394 --disable-debug --enable-shared --prefix=/usr [2] => libavutil version: 1d.49.3.0 [3] => libavcodec version: 1d.51.38.0 [4] => libavformat version: 1d.51.10.0 [5] => built on Apr 23 2010 15:36:59, gcc: 4.2.4 (Ubuntu 4.2.4-1ubuntu3) [6] => [image2 @ 0x7f946e427160]Could not find codec parameters (Video: mjpeg) [7] => /home/sites/www.siris.nl/web/ffmpeg/image.jpg: could not find codec parameters )

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Ga je nu elke foutmelding die je krijgt hier posten voor je zelf eens wat onderzoek doet? Stop die melding eens in Google? Wat kun je zelf vinden over het probleem? Als je er zelf niet uit komt kun je altijd nog een vraag stellen. ;)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • CrankyGamerOG
  • Registratie: Juni 2003
  • Laatst online: 16:46

CrankyGamerOG

Assumption is the mother.....

Tom, zoals ik je al in de mail zei , probeer eens eerst eens de materie te begrijpen wat je uitvoert.
Je bent nu in principe scripts aan het copy pasten, en dat is ook niet gunstig voor de server, denk hierbij aan veiligheid ,en al helemaal de load die je kan veroorzaken met ffmpeg op een webserver.
Dit is niet verkeerd bedoeld maar het is gewoon echt niet verstandig.

Overigens sluit ik niet uit dat het een fout in ffmpeg kan zijn, maar dat is jouw taak om dit aan te tonen, en als dit zo is, zal ik een nieuwe versie al dan niet nieuwer of ouder dan de huidige installeren.


(voor de overige tweakers, ik werk bij zijn hoster,en ben dan ook degene die voor hem ffmpeg en mencoder heeft geinstalleerd op die server.)

En mbt de foutmelding van het bestand.

code:
1
2
3
4
5
6
root@siris:/home/sites/www.siris.nl/web/ffmpeg# ls -lha
total 6.7M
drwxr-xr-x  2 siris siris 4.0K 2010-07-20 19:05 .
drwxr-xr-x 16 siris site1  12K 2010-07-20 19:05 ..
-rw-r--r--  1 siris siris 6.7M 2010-07-20 19:05 audio.mp3
-rw-r--r--  1 siris siris 6.6K 2010-07-20 19:04 image.jpg


Dit zijn de rechten van de bestanden.

[ Voor 28% gewijzigd door CrankyGamerOG op 20-07-2010 19:33 ]

KPN - Vodafone Ziggo Partner


Acties:
  • 0 Henk 'm!

  • Feanathiel
  • Registratie: Juni 2007
  • Niet online

Feanathiel

Cup<Coffee>

Hernoem de .jpg eens naar .png :) Het is een afbeelding in png formaat.

Acties:
  • 0 Henk 'm!

  • tom_swinkels
  • Registratie: Februari 2010
  • Laatst online: 09-12-2024
Ok dat snap ik maar ik ben nu al 3 dagen bezig met het google en volgensmij heb ik al meer dan 100 pagina's bekeken.

Ik heb nu even de commands onder elkaar gezet.. En ik zie verder niet echt een fout?

-i - Filename
-s - Size
-vcodec - Codec
-mbd - Mode
-acodec - Codec
-b - Bitrate

Ik zal nog wel even verder gaan met google..

Acties:
  • 0 Henk 'm!

  • CrankyGamerOG
  • Registratie: Juni 2003
  • Laatst online: 16:46

CrankyGamerOG

Assumption is the mother.....

tom_swinkels schreef op dinsdag 20 juli 2010 @ 19:33:
Ok dat snap ik maar ik ben nu al 3 dagen bezig met het google en volgensmij heb ik al meer dan 100 pagina's bekeken.

Ik heb nu even de commands onder elkaar gezet.. En ik zie verder niet echt een fout?

-i - Filename
-s - Size
-vcodec - Codec
-mbd - Mode
-acodec - Codec
-b - Bitrate

Ik zal nog wel even verder gaan met google..
Tom wat gebruik je als zoektermen?

Ik kopieer nu even direct jouw string naar de shell

code:
1
2
3
4
5
6
7
8
root@siris:/home/sites/www.siris.nl/web/ffmpeg# ffmpeg /home/sites/www.siris.nl/web/ffmpeg/image.jpg -i /home/sites/www.siris.nl/web/ffmpeg/audio.mp3 -s 800x600 -vcodec mpeg4 -mbd 2 -trellis 1 -acodec copy -b 2500 /home/sites/www.siris.nl/web/ffmpeg/output.avi
FFmpeg version SVN-rUNKNOWN, Copyright (c) 2000-2007 Fabrice Bellard, et al.
  configuration: --enable-gpl --enable-pp --enable-swscaler --enable-pthreads --enable-libvorbis --enable-libtheora --enable-libogg --enable-libgsm --enable-dc1394 --disable-debug --enable-shared --prefix=/usr
  libavutil version: 1d.49.3.0
  libavcodec version: 1d.51.38.0
  libavformat version: 1d.51.10.0
  built on Apr 23 2010 15:36:59, gcc: 4.2.4 (Ubuntu 4.2.4-1ubuntu3)
Unable for find a suitable output format for '/home/sites/www.siris.nl/web/ffmpeg/image.jpg'


Kijk eens even naar de uiteindelijke foutmelding. ;)

[ Voor 49% gewijzigd door CrankyGamerOG op 20-07-2010 19:36 ]

KPN - Vodafone Ziggo Partner


Acties:
  • 0 Henk 'm!

  • tom_swinkels
  • Registratie: Februari 2010
  • Laatst online: 09-12-2024
Feanathiel schreef op dinsdag 20 juli 2010 @ 19:32:
Hernoem de .jpg eens naar .png :) Het is een afbeelding in png formaat.
Dit was dus ook het probleem! Ik heb het aangepast en het lijkt nu te werken!

Acties:
  • 0 Henk 'm!

  • CrankyGamerOG
  • Registratie: Juni 2003
  • Laatst online: 16:46

CrankyGamerOG

Assumption is the mother.....

dat zie ik dus ook :D

code:
1
-rw-r--r--  1 www-data www-data 7.1M 2010-07-20 19:36 output.avi

Gefeliciteerd Tom, het heeft je dan 3 dagen mogen kosten, maar nu kun je wel zeggen dat je het zelf opgelost hebt :)

[ Voor 35% gewijzigd door CrankyGamerOG op 20-07-2010 19:39 ]

KPN - Vodafone Ziggo Partner


Acties:
  • 0 Henk 'm!

  • tom_swinkels
  • Registratie: Februari 2010
  • Laatst online: 09-12-2024
CrankyGamerOG schreef op dinsdag 20 juli 2010 @ 19:34:
[...]

Tom wat gebruik je als zoektermen?

Ik kopieer nu even direct jouw string naar de shell

code:
1
2
3
4
5
6
7
8
root@siris:/home/sites/www.siris.nl/web/ffmpeg# ffmpeg /home/sites/www.siris.nl/web/ffmpeg/image.jpg -i /home/sites/www.siris.nl/web/ffmpeg/audio.mp3 -s 800x600 -vcodec mpeg4 -mbd 2 -trellis 1 -acodec copy -b 2500 /home/sites/www.siris.nl/web/ffmpeg/output.avi
FFmpeg version SVN-rUNKNOWN, Copyright (c) 2000-2007 Fabrice Bellard, et al.
  configuration: --enable-gpl --enable-pp --enable-swscaler --enable-pthreads --enable-libvorbis --enable-libtheora --enable-libogg --enable-libgsm --enable-dc1394 --disable-debug --enable-shared --prefix=/usr
  libavutil version: 1d.49.3.0
  libavcodec version: 1d.51.38.0
  libavformat version: 1d.51.10.0
  built on Apr 23 2010 15:36:59, gcc: 4.2.4 (Ubuntu 4.2.4-1ubuntu3)
Unable for find a suitable output format for '/home/sites/www.siris.nl/web/ffmpeg/image.jpg'


Kijk eens even naar de uiteindelijke foutmelding. ;)
Als ik het goed zie dat het format van het bestand niet klopt? Wat ik dus nu heb aangepast?

Acties:
  • 0 Henk 'm!

  • CrankyGamerOG
  • Registratie: Juni 2003
  • Laatst online: 16:46

CrankyGamerOG

Assumption is the mother.....

Precies :), zie mijn laatste bericht, feli :)

Ik ken het gevoel als je dan uiteindelijk iets lukt :)

KPN - Vodafone Ziggo Partner


Acties:
  • 0 Henk 'm!

  • Feanathiel
  • Registratie: Juni 2007
  • Niet online

Feanathiel

Cup<Coffee>

CrankyGamerOG schreef op dinsdag 20 juli 2010 @ 19:34:
[...]

Tom wat gebruik je als zoektermen?

Ik kopieer nu even direct jouw string naar de shell

code:
1
2
3
root@siris:/home/sites/www.siris.nl/web/ffmpeg# ffmpeg /home/sites/www.siris.nl/web/ffmpeg/image.jpg -i /home/sites/www.siris.nl/web/ffmpeg/audio.mp3 -s 800x600 -vcodec mpeg4 -mbd 2 -trellis 1 -acodec copy -b 2500 /home/sites/www.siris.nl/web/ffmpeg/output.avi

[...]
Je weet dat je hier een '-i' mist?

[edit]
Het kan trouwens nu ook zo zijn dat je oude script gewoon werkt, tomo-dj.

[edit 2]
@Def!ance:
Ik zie het nu inderdaad. :)

[ Voor 11% gewijzigd door Feanathiel op 20-07-2010 19:59 ]


Acties:
  • 0 Henk 'm!

  • CrankyGamerOG
  • Registratie: Juni 2003
  • Laatst online: 16:46

CrankyGamerOG

Assumption is the mother.....

Lees nou eens zelf terug wat je gequote hebt ;)

KPN - Vodafone Ziggo Partner


Acties:
  • 0 Henk 'm!

  • MueR
  • Registratie: Januari 2004
  • Laatst online: 14:48

MueR

Admin Tweakers Discord

is niet lief

Ik heb er genoeg van. We zijn niet je persoonlijke helpdesk. Zoals NMe in "Mencoder en Ffmpeg" al zegt, doe zelf eens wat moeite. Lees bijvoorbeeld Programming FAQ - Debuggen: hoe doe ik dat? eens door.

Anyone who gets in between me and my morning coffee should be insecure.

Pagina: 1

Dit topic is gesloten.