FFMpeg перекодировка видео для телевизора

Страницы:  1
Ответить
 

Shurik-R

Стаж: 13 лет 10 месяцев

Сообщений: 9


Shurik-R · 02-Июл-25 10:11 (19 дней назад, ред. 02-Июл-25 12:13)

Всем Доброго!
Прошу совета. Есть коллекция старых фильмов, формат *.avi, кодеки XVid и DIVX, есть телевизор Sаmsung, который не воспроизводит видео в этих форматах. Он воспроизводит видео в H264, h265, VP9.
Пробовал конвертить фильмы с помощью FFMpeg в Н265, все проходит ровно, телевизор нормально воспроизводит результат. Но, есть нюансы.
Для конвертации спользовал командную строку:
ffmpeg.exe -y -hide_banner -i "input.avi" -c:v libx265 -c:a aac -b:a 128k -vtag hvc1 "output.MKV"
Т.е. все настройки по умолчанию.
Сконвертировал фильм размером 2.9Гб, файл ужался до 700Мб, при этом качество понизилось, заметно "на глаз".
Не подскажете, какие параметры нужно установить, чтоб качество осталось максимально близким к оригиналу?
Дело в том, что относительно кодеков Н264 и H265, везде обсуждается вопрос: Как получить минимальный размер файла на выходе при приемлемом качестве?
У меня ситуация противоположная: Как получить качество максимально близкое к оригиналу, при этом не обращая внимание на размер файла? Даже если, в результате ковертации, размер файла вырастет на 10 - 20%, меня это вполне устроит. Мне важно переконвертировать фильм в формат понимаемый телевизором, с максимально возможным качеством, не оглядываясь на размер полученного файла.
Спасибо!
[Профиль]  [ЛС] 

Shurik-R

Стаж: 13 лет 10 месяцев

Сообщений: 9


Shurik-R · 03-Июл-25 13:25 (спустя 1 день 3 часа)

Эксперементпрую дальше. Узнал из документации к FFMpeg о параметре --lossless
скрытый текст
--lossless, --no-lossless?
Enables true lossless coding by bypassing scaling, transform, quantization and in-loop filter processes. This is used for ultra-high bitrates with zero loss of quality. Reconstructed output pictures are bit-exact to the input pictures. Lossless encodes implicitly have no rate control, all rate control options are ignored. Slower presets will generally achieve better compression efficiency (and generate smaller bitstreams). Default disabled.
Google перевод:
Включает настоящее кодирование без потерь, обходя процессы масштабирования, преобразования, квантования и внутрицикловой фильтрации. Используется для сверхвысоких битрейтов с нулевой потерей качества. Восстановленные выходные изображения побитно соответствуют входным изображениям. Кодирование без потерь неявно не имеет управления скоростью, все параметры управления скоростью игнорируются. Более медленные предустановки, как правило, обеспечивают лучшую эффективность сжатия (и генерируют меньшие битовые потоки). По умолчанию отключено.
Используйте параметр -x265-params lossless=1. Добавление -crf 0 не требуется.
Результат: Файл конвертировался дольше процентов на 30 чем при параметрах по умолчанию. Качество выходного видео не отличимо от оригинала. Но размер выходного файла вырос в 8 раз:
Исходный файл (Кодек: Xvid MPEG-4 Video (XVID), Кодек: A52 Audio (aka AC3) (a52 )): 2,9Гб
Выходной файл (Н265 lossless, аас): 23Гб
Это немного не то на что я расчитывал, продолжаю искать другие варианты.
[Профиль]  [ЛС] 

Mordovian God

Top Bonus 03* 1TB

Стаж: 8 лет 11 месяцев

Сообщений: 6851

Mordovian God · 05-Июл-25 11:10 (спустя 1 день 21 час)

Shurik-R
Почитал-почитал и пришёл к выводу, что вы пилите опилки...
[Профиль]  [ЛС] 

Shurik-R

Стаж: 13 лет 10 месяцев

Сообщений: 9


Shurik-R · 05-Июл-25 12:21 (спустя 1 час 11 мин.)

Mordovian God писал(а):
87961395Shurik-R
Почитал-почитал и пришёл к выводу, что вы пилите опилки...
Возможно Вы правы. Тем более будет интересно прочитать Ваш развернутый ответ с Вашей аргументацией. В конце концов, он может быть полезен не только мне, а всем, кто задастся аналогичным вопросом, и, возможно, найдет эту тему.
Заранее Спасибо за Ваши мысли и аргументы.
[Профиль]  [ЛС] 

Mordovian God

Top Bonus 03* 1TB

Стаж: 8 лет 11 месяцев

Сообщений: 6851

Mordovian God · 05-Июл-25 12:40 (спустя 18 мин.)

Shurik-R писал(а):
87951523Прошу совета. Есть коллекция старых фильмов, формат *.avi, кодеки XVid и DIVX, есть телевизор Sаmsung, который не воспроизводит видео в этих форматах
Shurik-R писал(а):
87961593будет интересно прочитать Ваш развернутый ответ с Вашей аргументацией
Ответ будет простым и коротким. Приставка DVB-T2 воспроизведёт их, с вероятностью от 90% и выше.
А вопросы подобные вашему, обсуждаются тут: Воспроизведение видео на бытовых устройствах.
[Профиль]  [ЛС] 

Shurik-R

Стаж: 13 лет 10 месяцев

Сообщений: 9


Shurik-R · 05-Июл-25 12:57 (спустя 16 мин., ред. 05-Июл-25 12:57)

Mordovian God писал(а):
87961650Ответ будет простым и коротким. Приставка DVB-T2 воспроизведёт их, с вероятностью от 90% и выше.
А вопросы подобные вашему, обсуждаются тут: Воспроизведение видео на бытовых устройствах.
Спасибо за ответ.
Я могу ошибаться, но "Приставка DVB-T2" это про эфирное телевидение, а фильмы, они на HDD на компе.
За ссылку на тему отдельное спасибо.
[Профиль]  [ЛС] 

Mordovian God

Top Bonus 03* 1TB

Стаж: 8 лет 11 месяцев

Сообщений: 6851

Mordovian God · 05-Июл-25 13:18 (спустя 20 мин.)

Shurik-R писал(а):
87961698Я могу ошибаться, но "Приставка DVB-T2" это про эфирное телевидение, а фильмы, они на HDD на компе
Копируете на флешку, и смотрите на приставке через встроенный плеер, при этом телевизор используется как экран/монитор.
[Профиль]  [ЛС] 

Shurik-R

Стаж: 13 лет 10 месяцев

Сообщений: 9


Shurik-R · 05-Июл-25 13:34 (спустя 16 мин., ред. 05-Июл-25 13:34)

Mordovian God писал(а):
87961760Копируете на флешку, и смотрите на приставке через встроенный плеер, при этом телевизор используется как экран/монитор.
Ваша мысль понятна: используем стороннее устройство для декодирования не поддерживаемых форматов видео.
Имея эту цель, почему бы тогда не подключить сам компьютер к телевизору, используя его как монитор? Думаю, с мощностью компа, качество будет значительно выше. И докупать ничего не придется. Разве что качественный кабель HDMI. Этот вариант я тоже держу в голове.
А уж если таки докупать стороннее устройство, то я бы предпочел что то типа Xiaomi TV Box, устройство на голову выше любой из DVB-T2 приставки.
Но, в текущий момент, меня интересует именно перекодирование видео, чтоб оно воспроизводилось с флэшки самим телевизором. Возможно, это не самый лучший вариант. Потому и экспериментирую, а так же прошу совета у знающих людей.
[Профиль]  [ЛС] 

Mordovian God

Top Bonus 03* 1TB

Стаж: 8 лет 11 месяцев

Сообщений: 6851

Mordovian God · 05-Июл-25 13:41 (спустя 7 мин., ред. 05-Июл-25 14:21)

Shurik-R
Делайте что хотите...
Добавлено спустя 30 лет и три года:
За то время, которые вы потратите на мягко говоря ненужные эксперименты, можно было бы дойти/доехать до магазина, где продаются устройства, которое нужно докупить, и там задать вопрос(ы) продавц(у)ам. И покинуть магазин с покупкой, или вооружившись ответами продавц(ов)а, зайти в 2-3 интернет магазина, почитать отзывы на заинтересовавш(е)ие устройств(о)а, и сделать выбор.
Или типа того...
[Профиль]  [ЛС] 

Shurik-R

Стаж: 13 лет 10 месяцев

Сообщений: 9


Shurik-R · 05-Июл-25 15:00 (спустя 1 час 18 мин.)

Mordovian God писал(а):
87961814За то время, которые вы потратите на мягко говоря ненужные эксперименты...
Я понимаю Вашу точку зрения. Для потребительского уровня вопрошающего, Ваши доводы - самое то! И здесь, я соглашусь с каждым Вашим словом.
Но, как же приятно, решить инженерную задачу, победить проблему и получить именно тот результат, который нужен именно тебе!
За время нашего с Вами общения, и благодаря ему, у меня возникла еще одна интересная (мне) мысль
скрытый текст
FFmpeg can be used as an IPTV server, leveraging its powerful multimedia framework to stream live or on-demand content over a network. It can handle various protocols and codecs, making it versatile for different IPTV setups.
Here's how FFmpeg can be used in an IPTV context
1. Streaming from Local Files or Devices
FFmpeg can read media files (e.g., MP4, MKV) or capture from devices (e.g., webcams, tuners) and stream them to a network address using protocols like RTSP, RTMP, or HTTP.
Example ffmpeg -re -i input.mp4 -c copy -f rtsp rtsplocalhost8554stream would stream a local MP4 file using RTSP.
2. Streaming from Live Sources
FFmpeg can receive live streams from various sources (e.g., satellite receivers, other streaming servers) and re-encode or transcode them for IPTV distribution.
Example ffmpeg -i rtspsource-ip554live -c copy -f rtsp rtsplocalhost8554live_stream would grab an RTSP stream and re-stream it via RTSP.
3. Transcoding and Encoding
FFmpeg can convert media to different formats and codecs suitable for IPTV clients. This is important for compatibility across devices and to optimize bandwidth usage.
Example ffmpeg -i input.mp4 -cv libx264 -ca aac -f rtsp rtsplocalhost8554h264_stream would encode the video to H.264 and audio to AAC and stream over RTSP.
Google перевод:
FFmpeg можно использовать в качестве сервера IPTV, используя его мощную мультимедийную инфраструктуру для потоковой передачи контента в реальном времени или по запросу по сети. Он может обрабатывать различные протоколы и кодеки, что делает его универсальным для различных настроек IPTV.
Вот как FFmpeg можно использовать в контексте IPTV
1. Потоковая передача из локальных файлов или устройств
FFmpeg может считывать медиафайлы (например, MP4, MKV) или захватывать с устройств (например, веб-камер, тюнеров) и транслировать их на сетевой адрес с использованием таких протоколов, как RTSP, RTMP или HTTP.
Пример ffmpeg -re -i input.mp4 -c copy -f rtsp rtsplocalhost8554stream будет транслировать локальный файл MP4 с использованием RTSP.
2. Потоковая передача из источников прямой трансляции
FFmpeg может получать прямые трансляции из различных источников (например, спутниковых ресиверов, других потоковых серверов) и перекодировать или транскодировать их для распространения IPTV.
Пример ffmpeg -i rtspsource-ip554live -c copy -f rtsp rtsplocalhost8554live_stream захватит поток RTSP и передаст его через RTSP.
3. Транскодирование и кодирование
FFmpeg может преобразовывать медиа в различные форматы и кодеки, подходящие для клиентов IPTV. Это важно для совместимости между устройствами и оптимизации использования полосы пропускания.
Пример ffmpeg -i input.mp4 -cv libx264 -ca aac -f rtsp rtsplocalhost8554h264_stream закодирует видео в H.264, а аудио в AAC и будет транслироваться через RTSP.
Если вдруг получится, то, возможно, и HDMI кабель не придется докупать
[Профиль]  [ЛС] 

jеnsen

Помощник модератора

Стаж: 15 лет 2 месяца

Сообщений: 3267

jеnsen · 06-Июл-25 00:26 (спустя 9 часов)

Shurik-R писал(а):
87962033Но, как же приятно, решить инженерную задачу, победить проблему и получить именно тот результат, который нужен именно тебе!
Ваша проблема не решаема за 5 минут. Нет идеальных настроек для любого видео, они уникальны для каждого. Нужно понимание, как работает кодек и что у вас в видео. Риперы не просто так существуют. Так что или учиться и получать опыт или пойти легким путем)
[Профиль]  [ЛС] 

Shurik-R

Стаж: 13 лет 10 месяцев

Сообщений: 9


Shurik-R · 06-Июл-25 21:55 (спустя 21 час, ред. 06-Июл-25 21:55)

jеnsen писал(а):
87963698
Shurik-R писал(а):
87962033Но, как же приятно, решить инженерную задачу, победить проблему и получить именно тот результат, который нужен именно тебе!
Ваша проблема не решаема за 5 минут. Нет идеальных настроек для любого видео, они уникальны для каждого. Нужно понимание, как работает кодек и что у вас в видео. Риперы не просто так существуют. Так что или учиться и получать опыт или пойти легким путем)
Подпишусь под каждым Вашим словом! И да, тему открыл для того чтобы учиться, и спросил совета Знающих.
Опробовал FFMpeg в качестве простейшего IP TV сервера, с обновременной перекодировкой видео в понимаемый устройством формат. Результат успешный, но неоднозначный.
скрытый текст
На компьютере создал *.bat файл следующего содержимого:
cd /d %~dp0
ffmpeg -re -i "%1" -vcodec libx264 -c:a aac -f mpegts udp://127.0.0.1:1234?pkt_size=1316
и поместил его в одну папку с ffmpeg.exe. Здесь команда на перекодировку входного файла: видео в Н264, звук в асс, и трансляции выходного потока на порт 1234 компьютера, на которм запущен ffmpeg.exe.
Достаточно мышкой перетянуть файл для трансляции на этот батник, и начнется его перекодировка и трансляция по сети.
Для проверки работы, на том же компьютере запустил VLC, в режиме показа трансляции IP TV.
Для этого, в VLC идем в меню: Медиа - Отрыть URL, и вставляем адрес: udp://@127.0.0.1:1234?pkt_size=1316 и нажимаем Воспроизвести. Наслаждаемся трасляцией видео.
Это не готовое решение! Это простейший экперимент, задача которого добиться работающей трансляции, а значит, он совсем не совершенен, и требует доработки.
Этот способ имеет серьезные недостатки:
Трансляция идет напрерывно, а значит, нет перемотки ни в каком виде.
При постановке на паузу воспроизведения в VLC, дальнейшее воспроизведение начнется не с места постановки на паузу, а с текущего места трансляции.
Вобщем, все неоднозначно. Нужно либо дорабатывать, либо отказаться от такого способа трансляции.
[Профиль]  [ЛС] 
 
Ответить
Loading...
Error