Я использую ffmpeg, чтобы конвертировать мои видео файлы в flv.
Моя проблема в том, что я хочу, чтобы у преобразованных файлов flv были videoCodecId
и audioCodecId = 2
, потому что я вставляю ключевые кадры в преобразованный файл и использую его для прогрессивной потоковой передачи.
Но когда я пытаюсь использовать прогрессивную потоковую передачу, используя файл с videoCodecId = 7
и auddioCodecId = 10
, я не могу заставить файл работать должным образом. (может я и здесь что-то не так делаю)
Я пытался конвертировать один и тот же файл двумя способами:
Сначала с
videoCodecId = 7
иaudioCodecId = 10
я использовал для этого следующую командную строку :/usr/local/bin/ffmpeg -i% s -map_meta_data 0:0 -acodec libfaac -ab 96k -ar 44100 -vcodec libx264 -vpre hq -crf 20 -потоков 0 -f flv% s
Другой способ поддерживает
videoCodecId = 2
иaudioCodecId = 2
(что желательно), но это сильно влияет на качество видео./usr/local/bin/ffmpeg -i% s -map_meta_data 0:0 -ab 96k -ar 44100 -crf 20 -f flv% s
Таким образом, оба способа могут помочь мне решить мою проблему, во-первых, если я смогу улучшить качество моего видео после преобразования, используя второй метод, или я могу заставить потоковую передачу работать для файлов с videoCodecId = 7
.
Но я читал в нескольких статьях, что даже YouTube использует видео с videoCodecId = 2
и audioCodecId = 2
. Так что, вероятно, есть причина, по которой они тоже это делают.
Но если я загружаю файл с youtube и вижу информацию о его кодеках с помощью VLCplayer, он говорит, что видеокодек - h264 и audio в формате mp4a, то есть 7 и 10 соответственно (я полагаю)
Я очень запутался в этом прямо сейчас. И пытаюсь понять это уже несколько дней.
Любая помощь или предложение приветствуется.