FFMPEG / x264: можно ли использовать проход 1 из одного сеанса кодирования в качестве прохода 2 для другого?
Вопрос:
Разрешено ли использовать кодирование «pass 1» исходного видео с одним разрешением / битрейтом в качестве входа для кодирования «pass 2» того же источника с другим разрешением / битрейтом? Я попробовал это, и это похоже на работу, но я не совсем уверен, что это будет в общем случае: профиль потока (выбор кадра I / P / B и т. Д.) Выглядит иначе, чем использование одних и тех же параметров для обоих проходов, но также выглядит "достаточно хорошо".
Я нахожусь в точке, где мне нужен авторитетный ответ на этот вопрос.
Почему в tarnation 1 вы бы это сделали?
Поскольку двухпроходное кодирование исправляет сводящую с ума ошибку в FFMPEG (действительно x264), которая, вероятно, не будет исправлена в ближайшее время: в зависимости от скорости вашего компьютера, первые ~ 1 секунда или около того видео часто будут очень неуместными битрейт. Это очень легко воспроизводится с помощью источника с высокой скоростью передачи битов, транскодированного до низкой скорости передачи на очень быстрой машине (такой как EC2 c4.8xlarge ). Неработающий четырехъядерный MacBook Pro i7 НЕ достаточен для воспроизведения этой ошибки.
Это будет либо чрезвычайно высоко:
один проход ЦБР, без VBV указано
(игнорируйте тот факт, что CBR без VBV вовсе не является CBR )
или слишком низко:
- однопроходной CBR с VBV
- однопроходный VBR: QScale с VBV и макс.
Измерения качества как VIFp, так и SSIM показывают, что низкие / высокие битрейты действительно соответствуют излишне пониженному / повышенному качеству (т.е. битрейт НЕ должен был быть выше или ниже).
Выполнение двухпроходного кодирования CBR прекрасно работает и решает проблему ... если у вас есть время для этого. К сожалению, я не могу позволить себе задержку двухпроходного кодирования для одного разрешения.
Так что же вы хотите сделать?
В настоящее время я выполняю первоначальный транскод с меньшим разрешением (480). Это будет охватывать как можно больше устройств воспроизведения. Я хотел бы использовать это в качестве моего прохода 1. Поскольку разрешение 480 все равно отстой, я могу просто опубликовать этот проход 1 видео как мой 480, независимо от каких-либо глупых битрейтов в первую секунду видео.
Затем я хотел бы использовать информацию 480 pass 1 и только pass 2 на моих более высоких разрешениях. В случае CBR / VBV это будет:
ffmpeg -i source.mp4 -pass 1 -vf scale=852:480 -c:v libx264 -b:v 1000k ... 480.mp4 ffmpeg -i source.mp4 -pass 2 -vf scale=1280:720 -c:v libx264 -b:v 2500k ... 720.mp4
0 ответов на вопрос
Похожие вопросы
-
3
Windows Media Center (Vista): дополнение или программное обеспечение для обрезки телевизионных запис...
-
3
Обработка видео с картами ATI
-
1
VirtualDub для Linux
-
-
2
Какое использование диска используют видео в формате RAW?
-
1
Приложения Java в браузере вспыхивают / рвутся при прокрутке - почему это так?
-
3
Воспроизведение видео рипов с помощью Windows Media Center
-
5
Как лучше всего смотреть интернет-фильмы (Hulu и т. Д.) На моем телевизоре?
-
4
Вставить Flash видео в документ MS Word (2003 или 2007)
-
10
Принудительно установить собственное разрешение для монитора без PnP в Windows
-
4
Как узнать, почему Windows Media Center не воспроизводит фильм?