2016-06-05 11 views
-1

Ich habe einige FFMPEG-Codes erstellt, die ausgeführt werden, sobald ein Video geladen wurde. Ich bin noch ziemlich neu dabei, also bitte geben Sie so viele Informationen wie möglich.FFMPEG - Konvertieren aller Bilder, die in MP4s hochgeladen werden

// ffmpeg Location 
$ffmpeg = 'c:\ffmpeg\bin\ffmpeg.exe'; 
$ffprobe = 'c:\ffmpeg\bin\ffprobe.exe'; 

// Video Filename Dir 
$video0 = $caption->row()->vidFile; 
// ex. output: upload/user/vid23.mov 

// Video Filename only 
$video1 = explode('/',$video0); 
$video2 = $video1[2]; 
// ex. output = vid23.mov; 

// Remove Extensions 
function extensions ($video2) 
{ 
    $filename = strtolower($video2); 
    $exts = explode(".", $video2); 
    $n = count($exts)-2; 
    $exts = $exts[$n]; 
    return $exts; 
} 

    $ext2 = extensions($video2); 
// ex. output = vid23; 

    //Convert all files to Mp4s 
    //exec("$ffmpeg -i $video0 -vcodec copy -acodec copy $ext2.mp4"); 
    exec("$ffmpeg -i $video0 -vcodec libx264 -vf scale=-1:360 -qscale 7 -acodec libfdk_aac -ab 32 -ar 24000 $ext2.mp4"); 

Mache ich etwas falsches? Es funktioniert, wenn ich es an meinem Teststandort teste, aber sobald ich es in die Produktion unter Verwendung Codeigniter Rahmen verschoben habe. Es funktioniert nicht (Nun, Korrektur, nur dieser Teil funktioniert nicht - Mein Bild thumbnail tut was benötigt wird)

Bitte helfen Sie auf jeden Fall möglich. Vielen Dank!

EDIT

Das Hauptproblem mit dem Code ist es völlig den Abschnitt überspringen und überhaupt nicht ausgeführt werden. Ich habe keine Fehlermeldungen erhalten. Ein weiteres Problem ist, dass die Datei aufgrund der MOOV-Daten (Bytes 0-32/33) zum Codec-Fehler neigt. Ich habe etwas gelesen, aber da ich mit FFMPEG nicht vertraut bin, ist es schwer zu lesen oder zu verstehen.

Beispiel site: https://askubuntu.com/questions/396883/how-to-simply-convert-video-files-i-e-mkv-to-mp4

verwendet ich diesen Standort als Ausgangspunkt.

ERROR LOG INFO

die FFMPEG exec Skript zum

folgenden aktualisiert
exec("$ffmpeg -i $video0 -vcodec libx264 -vf scale=-2:360 
-acodec libfdk_aac -ab 32k -pix_fmt yuv420p -movflags +faststart 
-ar 24000 $ext2.mp4 2> log/error_log.txt"); 

Das Fehlerprotokoll der folgende

ffmpeg version N-80101-gd970f7b Copyright (c) 2000-2016 the FFmpeg developers 
built with gcc 5.3.0 (GCC) 
configuration: --enable-gpl --enable-version3 --disable-w32threads 
--enable-nvenc --enable-avisynth --enable-bzlib --enable-fontconfig 
--enable-frei0r --enable-gnutls --enable-iconv --enable-libass 
--enable-libbluray --enable-libbs2b --enable-libcaca --enable-libfreetype 
--enable-libgme --enable-libgsm --enable-libilbc --enable-libmodplug 
--enable-libmfx --enable-libmp3lame --enable-libopencore-amrnb 
--enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus 
--enable-librtmp --enable-libschroedinger --enable-libsnappy 
--enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame 
--enable-libvidstab --enable-libvo-amrwbenc --enable-libvorbis 
--enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 
--enable-libx265 --enable-libxavs --enable-libxvid --enable-libzimg 
--enable-lzma --enable-decklink --enable-zlib 
libavutil  55. 24.100/55. 24.100 
libavcodec  57. 43.100/57. 43.100 
libavformat 57. 37.100/57. 37.100 
libavdevice 57. 0.101/57. 0.101 
libavfilter  6. 46.100/6. 46.100 
libswscale  4. 1.100/4. 1.100 
libswresample 2. 0.101/2. 0.101 
libpostproc 54. 0.100/54. 0.100 
upload/user/vid53.mp4: No such file or directory 
+1

"Nicht funktioniert" ist nicht sehr beschreibend. Was genau ist das eigentliche Problem? Erhalten Sie keine Fehlermeldungen? Ist das Problem mit Ihrem Skript oder mit dem 'ffmpeg' Befehl? Was ist mit der 'ffmpeg' Konsole Ausgabe/log? Wie bei Ihrem ffmpeg-Befehl: '-qscale' wird von libx264 ignoriert, also entfernen Sie das, verwenden Sie' -2' anstelle von -1 im Maßstab, so dass die Ausgabe durch 2 teilbar ist, "-ab32" verwendet 32 ​​Bits/s , fügen Sie ein "k" hinzu, wie in "-ab 32k". Ziehen Sie '-pix_fmt yuv420p' in Betracht, um ein weitgehend kompatibles Chroma-Subsampling und' -movflags + faststart' zu gewährleisten, wenn die Ausgabe über progressiven Download betrachtet werden soll. – LordNeckbeard

+0

Ich werde den Beitrag aktualisieren. :) – programmer12

+0

Danke @LordNeckbeard für Ihre Assistenten. Ich werde diese Updates hinzufügen, um das neue Ergebnis zu sehen. Ist es möglich, dass Sie genau schreiben, wie es geschrieben werden soll: 'ffmpeg ...' oder spielt es keine Rolle, in welcher Reihenfolge es steht? – programmer12

Antwort

0

Die Antwort nur den Codec zu entfernen war ausgedruckt das habe ich nicht kompilieren.

Also habe ich -acodec libfdk_aac entfernt und es funktioniert jetzt.

Verwandte Themen