Я работаю с ffmpeg, чтобы конвертировать видео в FLV-файлы по php. Те тесты, которые я выполнил, не работают для конверсий mp4. У меня 13-секундное видео (видео будет ограничено до 15 секунд), когда он будет загружен, и я проверю «продолжительность» видео, которое выйдет за 300 секунд. Я попытался изменить вокруг, как я обрабатываю видео:ffmpeg не дает правильной длительности mp4
// original
exec('ffmpeg -i <path>/<filename> 2>&1', $output);
// current
exec('ffmpeg -i <path>/<filename> 2>&1 | grep "Duration" | cut -d \' \' -f 4 | sed s/,//', $output);
оригинальный метод не работает для файлов миль на галлон, но второй делает, но ни дает мне «правильную» продолжительность mp4 видео. Есть ли «специальный» способ обработки файлов mp4?
Благодарим вас за внимание и помощь.
Update:
Командная строка
ffmpeg -i ./custom_scraping.mp4 2>&1 | grep "Duration" | cut -d ' ' -f 4 | sed s/,//
00:05:15.84
Полный выход (отформатирован как можно лучше)
ffmpeg -i ./custom_scraping.mp4 2>&1
FFmpeg version 0.6.5, Copyright (c) 2000-2010 the FFmpeg developers
built on Jan 29 2012 23:55:02 with gcc 4.1.2 20080704 (Red Hat 4.1.2-51)
configuration: --prefix=/usr --libdir=/usr/lib64 --shlibdir=/usr/lib64 --mandir=/usr/share/man --incdir=/usr/include --disable-avisynth --extra-cflags='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -fPIC' --enable-avfilter --enable-avfilter-lavf --enable-libdirac --enable-libfaac --enable-libfaad --enable-libfaadbin --enable-libgsm --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libx264 --enable-gpl --enable-nonfree --enable-postproc --enable-pthreads --enable-shared --enable-swscale --enable-vdpau --enable-version3 --enable-x11grab
libavutil 50.15. 1/50.15. 1
libavcodec 52.72. 2/52.72. 2
libavformat 52.64. 2/52.64. 2
libavdevice 52. 2. 0/52. 2. 0
libavfilter 1.19. 0/1.19. 0
libswscale 0.11. 0/0.11. 0
libpostproc 51. 2. 0/51. 2. 0
Seems stream 1 codec frame rate differs from container frame rate: 5994.00 (5994/1) -> 29.97 (2997/100)
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from './custom_scraping.mp4':
Metadata:
major_brand : mp42
minor_version : 1
compatible_brands: mp42avc1
Duration: 00:05:15.84, start: 0.000000, bitrate: 36 kb/s
Stream #0.0(eng): Audio: aac, 44100 Hz, stereo, s16, 2 kb/s
Stream #0.1(eng): Video: h264, yuv420p, 480x360, 36 kb/s, 1.04 fps, 29.97 tbr, 2997 tbn, 5994 tbc
По крайней мере, один выходной файл должен быть указан
Дон Не знаю, помогает ли это, sting файла в Linux: 1432471 31 мая 13:33 custom_scraping.mp4
Сообщите мне, если что-то еще необходимо.
Сначала отключите хмель PHP и используйте ffmpeg напрямую. Как только он будет работать в ffmpeg, попробуйте его в PHP. Также включите фактические примеры и выходы консоли, чтобы мы могли легко их дублировать и точно видеть, в чем проблема. – LordNeckbeard
ffmpeg жалуется на некоторую несогласованность. Правильно ли кодируется файл и воспроизводится ли он так, как ожидалось? –
Я играю файл в vlc и quicktime, и он отлично играет. Это общее видео, которое я снял с Интернета для тестирования. – oach