Ответы:
Вы можете попробовать использовать что-то вроде ffmpeg или mencoder для перекодирования с более низкой скоростью передачи битов, например:
Рассчитайте необходимый вам битрейт, разделив 1 ГБ на длину видео в секундах. Итак, для видео длиной 16:40 (1000 секунд) используйте битрейт 1000000 байт / с:
ffmpeg -i input.mp4 -b 1000000 output.mp4
Дополнительные опции, которые стоит рассмотреть, - это установить коэффициент постоянной скорости , который снижает среднюю скорость передачи данных, но сохраняет лучшее качество. Изменяйте CRF между 18 и 24 - чем ниже, тем выше битрейт.
ffmpeg -i input.mp4 -vcodec libx264 -crf 20 output.mp4
-b
принимает скорость передачи в битах, а не скорость передачи в байтах. Если размер видео должен составлять 1 ГБ, а длительность составляет 1000 (одна тысяча) секунд, тогда требуемая скорость передачи битов составляет приблизительно 1e9 / 1000 * 8 = 8e6 (8 000 000) бит в секунду (бит / с).
Вы можете неразрушающим образом редактировать файл, чтобы вырезать ненужные фрагменты (1 м от начала, 30 м от середины, 4 м от конца).
Кроме этого, вам придется перекодировать mp4 в файл меньшего размера. Попробуйте ручник .
В любом случае вы теряете качество. Попробуйте поиграть с любым из вариантов (или с обоими) и сравните результаты. Выберите то, что выглядит лучше всего и имеет правильный размер файла.
Используйте «HandBrake». Импортируйте файл. Выберите «Высокий профиль», а затем нажмите «Пуск». Он может сжать файл размером 100 МБ до 27 МБ или более. (Входной файл не должен быть в уже сжатом состоянии). Если вы используете Handbrake версии 0.9.5, то есть настройка для ввода размера файла, который вы хотите сжать. (Верхняя версия HB не имеет этой функции).
Sorenson Squeeze - еще один профессиональный инструмент уровня для такой работы.
Я наткнулся на этот вопрос, а затем наткнулся на следующий онлайн-сервис, который решает проблему:
Очень хорошо, нет необходимости загружать файл, преобразование выполняется локально.