我已经创建了一些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
答案 0 :(得分:0)
答案就是删除我没有编译的编解码器。
所以我删除了-acodec libfdk_aac
,现在就可以了。