Пользователь может загрузить любой фильм (.mov .mpg .avi .flv и многие другие). Теперь я хотел бы сократить этот файл с 15 до 25 секунд (часть будет составлять только 10 секунд) и преобразовать эту небольшую часть в FLV в качестве предварительного просмотра фильма. ,
Теперь у меня есть несколько вопросов:
Должен ли я конвертировать все загруженные фильмы в FLV? или вырезать только часть, и весь файл фильма сделать как почтовый индекс?
Как я могу вырезать этот файл в PHP 7? Является ли это возможным ? я нашел
ffmpeg -ss [start] -i in.mp4 -t [duration] -c copy out.mp4
а это только для mp4?
Для HTML5 вы можете выводить различные форматы для совместимости. Например, H.264 + AAC в MP4, H.265 / HEVC + AAC в MP4 и VP9 + Opus в Webm:
ffmpeg -ss 30 -t 10 -i input \
-c:v libx264 -preset medium -crf 23 -pix_fmt yuv420p -c:a aac -movflags +faststart h264.mp4 \
-c:v libx265 -preset medium -crf 28 -pix_fmt yuv420p -c:a aac -movflags +faststart h265.mp4 \
-c:v libvpx-vp9 -crf 30 -b:v 2000k -c:a libopus vp9.webm
регулировать -preset
, -crf
и -b:v
к вашим потребностям. Реализация этого в shell_exec
должно быть тривиально для тех, кто знаком с PHP.
См. Следующие статьи FFmpeg Wiki для получения дополнительной информации: PHP, H.264, H.265, VP9.
Других решений пока нет …