Ответил
Новичок здесь, эта доска помогла мне до сих пор, спасибо за это.
Моя сегодняшняя просьба к тем, кто более опытен в подобных вещах, указать на любые области, в которых я могу совершать ошибки, и особенно на то, должен ли конечный результат быть сюрпризом, учитывая шаги, которые я сделал. Моя цель — захват и архивирование потока.
Не стесняйтесь переходить к вопросу ниже, объяснение следует сейчас:
Небольшое замечание: для захвата потока я использую программу, которая автоматизирует процесс. А именно, его функция состоит в том, чтобы записывать, когда на канале есть активность, так как у меня нет знаний, чтобы написать какой-нибудь скрипт для автоматической проверки того, идет ли поток в прямом эфире или нет.
Исходный поток имеет тип контейнера MPEG-TS. То есть, используя приведенное ниже, мои полученные файлы имеют расширение .ts. Поскольку исходные (и выходные) параметры автоматически обрабатываются этой программой, я передаю эти аргументы в ее настройках параметров FFmpeg:
-c:v копия -c:a копия -movflags faststart -y -f mpegts
После переименования этого вывода вручную, скажем, в «file1.ts», я затем использую консоль и выполняю эту команду:
ffmpeg -i file1.ts -c:v libx265 -crf 16 -preset slow -pix_fmt yuv420p10le -c:a aac -b:a 192k date_10bit.mp4
Здесь я собираюсь перекодировать захваченный поток как файл HEVC/x265 внутри контейнера .mp4.
- Я установил значение CRF на 16 по причинам, которые я собираюсь упомянуть ниже, но по сути я гонюсь за визуальной неразличимостью источника и готов заплатить цену размером (или я так думал)
- По рекомендации некоторых пользователей предустановка настроена на замедление, по общему мнению, качество медленного x265 эквивалентно качеству среднего при использовании x264.
- 10-битная глубина, из-за упоминания о том, что 10-битное сжатие лучше, я решил попробовать
- Кодирование аудио в aac и 192k из общего интереса к более качественному аудио, где это возможно.
После многих часов работы результирующий файл не был визуально неразличим (не выглядел хуже из-за проблем с артефактами/движением, но я думаю, что 10-битная команда сделала изображение заметно более теплым) и был немного меньше исходного .ts I. началось с.
Это был суровый урок, который я как-то пропустил до сих пор, что любое перекодирование/сжатие (кроме CRF/QP 0?) всегда будет снижением качества по сравнению с «источником».
В конце дня, мой исходный файл был 5,5 ГБ. Кодирование x265 заняло весь день, и выскочил файл на 5,25гб. Я предполагаю именно из-за такого низкого CRF. Во всяком случае,
Теперь, когда мое путешествие объяснено:
Ожидается ли все это?
В частности, есть ли (и что есть) какой-то способ значительно уменьшить размер файла при сохранении качества, скажем, значение CRF 20 или около того. В настоящее время я боюсь времени кодирования и на самом деле не вижу особых положительных результатов, поэтому я склонен согласиться с тем, что мне нужно будет хранить базовые файлы .ts и закругляться.
Спасибо, что нашли время прочитать.
Редактировать: Спасибо, Nmath, в комментариях!