FFMPEG - 转换上传到MP4的所有图像

时间:2016-06-05 01:36:44

标签: php codeigniter video ffmpeg

我已经创建了一些FFMPEG代码,以便在加载视频后执行。我仍然相当新,所以请尽可能多地提供信息。

// 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");

我做错了吗?当我在我的测试位置测试它时,它可以工作,但是一旦我使用 Codeigniter 框架将其移动到生产中。它不起作用(好吧,更正,只是这部分不起作用 - 我的图像缩略图可以满足需要)

请尽可能帮助。谢谢!

修改

代码的主要问题是它将完全跳过该部分而根本不执行。我没有收到任何错误消息。另一个问题是由于moov数据(字节0-32 / 33),文件倾向于编解码器错误。我确实做了一些阅读,但由于我不熟悉FFMPEG,因此很难阅读或理解。

示例网站:https://askubuntu.com/questions/396883/how-to-simply-convert-video-files-i-e-mkv-to-mp4

我以该网站为基础。

错误日志信息

将FFMPEG exec脚本更新为以下

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");

错误日志打印出以下内容

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 个答案:

答案 0 :(得分:0)

答案就是删除我没有编译的编解码器。

所以我删除了-acodec libfdk_aac,现在就可以了。