LINUX.ORG.RU

Исправить разрешение в MP4

 


0

1

Есть 2 файла с видео в разрешении 320x240. При попытке запустить их в mpv одновременно командой
mpv --lavfi-complex="[vid1][vid2]vstack[vo];[aid2] acopy [ao]" 1.mp4 --external-file=2.mp4
получаю ошибку
[ffmpeg] Parsed_vstack_0: Input 1 width 480 does not match input 0 width 320.
Аналогично для hstack получаю
[ffmpeg] Parsed_hstack_0: Input 1 height 360 does not match input 0 height 240.
Если поменять файлы местами — ошибка та же. Насколько я понял, в свойствах видеопотоков прописано верное разрешение 320x240, но в свойствах контейнеров 480x360. И для главного файла (input 0) берутся параметры потока, а для external-file (input 1) — параметры контейнера.

(Кому интересно, такие файлы получаются, если сохранять видео с Ютуба через сайт ddownr.com если у видео разрешение ниже заданного в веб-форме. Но для формы минимальное разрешение — 360p.)

Вопрос: как изменить свойства файла, чтобы сделать верное разрешение? Вероятно, это делается одной командой ffmpeg, но я её пока не нашёл. -c copy сохраняет неправильное разрешение.

★★★★★
Ответ на: комментарий от krasnh

Как скачать весь ютюб на диск? (комментарий)

Отваливается по таймауту даже быстрее, чем напрямую.

С рекомендуемыми параметрами работает, спасибо.

Но тему я создал не для обсуждения DPI, а для вопроса по ffmpeg.

question4 ★★★★★
() автор топика
Последнее исправление: question4 (всего исправлений: 1)
Ответ на: комментарий от question4

Но тему я создал не для обсуждения DPI, а для вопроса по ffmpeg.

«Тебе шашечки, или ехать?» )

Глянул этот ddownr.com:

Ищете лучший конвертер MP3 со скоростью 320 кбит/с с YouTube? Этот продвинутый инструмент обеспечивает высококачественное извлечение аудио с удобным интерфейсом.

конвертер

Т.е. не только скачивает, но и конвертирует так, что потом не работает в простенькой команде --lavfi-complex=.
У меня в закладках лежит y2mate.mx/ru51, может он лучше будет?


upd. Я не настаиваю, может тебе действительно важно разобраться на уровне ffmpeg.

krasnh ★★★★
()
Последнее исправление: krasnh (всего исправлений: 1)
Ответ на: комментарий от krasnh

Я не настаиваю, может тебе действительно важно разобраться на уровне ffmpeg.

Да, меня именно интересуют особенности форматов и метаданных.

question4 ★★★★★
() автор топика
Ответ на: комментарий от anonymous

можно попробовать видеопотоки предварительным фильтром рескейлить к одному разрешению.

Именно это я и делал.

Проблема в том, что для контейнера прописано не то разрешение, которое у потока. Поэтому чтобы что-то сделать с потоком, нужно сперва писать команду рескейлить поток к реальному разрешению потока. Несмертельно, но раздражает.

question4 ★★★★★
() автор топика
Ответ на: комментарий от question4

Попробовать создать копию копированием ffmpeg -copy, возможно скорректирует разрешение контейнера.

Поробовать принудительно задать разрешение выходного контейнера ffmpeg -i $input -copy -s 320x240 ... (параметр -s <W>x<H> указать после входных потоков -i ... )

anonymous
()