Как я могу преобразовать some.flv
или some.avi
или some.wmv
с FFmpeg , чтобы убедиться , что это видео будет воспроизводиться и в доступной для поиска JW проигрывателя?
источник
Как я могу преобразовать some.flv
или some.avi
или some.wmv
с FFmpeg , чтобы убедиться , что это видео будет воспроизводиться и в доступной для поиска JW проигрывателя?
Это ответ на ваш последний комментарий @abrahab.
Вам не нужен mp4box
файл, чтобы иметь возможность псевдопотока через nginx. Модуль потоковой передачи MP4 заботится об этом независимо от расположения атомов moov ( mp4box
сдвигает атом moov в начало файла).
Теперь для 500 ошибок сервера, вы используете опцию "-frag" с mp4box? Модуль потоковой передачи MP4 не может читать фрагментированные файлы MP4. Хорошее использование mp4box
для псевдопотоков - это чередование видео для лучшего поиска. Сдвиг атома Moov является дополнительным преимуществом.
Я всегда делаю это с mp4box
файлом в кодировке FFmpeg
MP4Box -add MyVideo.mp4 -isma Myvideo-box.mp4
Это также будет чередовать файл MP4 в 500 миллисекундах по умолчанию.
MP4Box -isma -inter 500 Myvideo.mp4
H.264 в MP4
Как правило, вы хотите создать видео x264 в контейнере MP4. Эта опция поддерживается практически любым устройством и браузером.
Следующего должно быть достаточно. Обязательно замените входное имя и параметры CRF. Последний устанавливает качество, где значения в диапазоне от 19 до 25 - чем ниже, тем лучше качество, но также и битрейт:
Вы также можете использовать Handbrake для кодирования, если вам нравится способ GUI.
Используя
faststart
опциюТеперь вам нужно переместить атом MOOV контейнера MP4 в начало. Этот атом (по сути, единица данных в контейнере MP4) будет содержать важные метаданные о самих видео / аудио потоках.
-movflags faststart
должен сделать именно это.Если ваша версия FFmpeg не имеет этой опции, рассмотрите возможность обновления. Если вы не можете выполнить обновление, вы можете добиться того же с помощью любого из следующих инструментов:
QTIndexSwapper , приложение Adobe AIR
MP4Box , свободный и открытый исходный код, запускает команду, подобную следующей, где вы можете изменить интервал (здесь, 500):
qt-faststart в Python , который работает везде, где установлен Python.
Вот и все.
Контроль битрейта / качества
Теперь, конечно, для потоковой передачи вы можете захотеть ограничить битрейт, чтобы он оставался в определенных пределах. Вы можете прочитать больше об этом в моем блоге о методах контроля скорости .
Например, добавляя
-maxrate 2M -bufsize 2M
к параметрам кодирования, вы ограничиваете кодирование до 2 Мбит / с, что может быть достаточно для видео 720p. Конечно, требуемый битрейт будет зависеть от того, насколько сложен контент. Это требует проб и ошибок.источник
ffmpeg -i 1.flv -vcodec libx264 -f mp4 -an -g 1 -f mp4 -g 30 -level 3 new.mp4
тогда,mp4box
и mp4 не может искать, и отчет nginx500 internal server error
для параметра запуска больше того0
. когда видео кодируется без-vcoded libx264
(кодировщик mp4 по умолчанию), весь рабочий файл (но качество! больной!) :( (извините, теперь не разрешено отвечать на ваши вопросы)-movflags faststart
именно за то, что мне было нужноВы можете просто преобразовать неконтролируемый AVI или MP4, также без перекодирования, выполнив следующее:
Нет необходимости перекодировать что-либо, потому что нужно просто переместить атом moov.
источник
Вы можете попробовать это с помощью ffmpeg:
источник
-acodec pcm_s16le
(error:)Could not write header for output file #0 (incorrect codec parameters ?): Invalid argument
. Хорошая причина, например, черновик IETF, почему выбрать именно эти параметры, по-видимому, также отсутствует.