Как я могу преобразовать видео 1080p WMV в видео 720p?

14

У меня есть видео 1080p WMV, которое я хотел бы преобразовать в видео низкого качества (предпочтительно 720p). Я хотел бы сохранить аудио нетронутым. Как я могу сделать это в Ubuntu?

Джеймс
источник

Ответы:

16

Поскольку вы использовали тег ffmpeg, я буду использовать его для ответа.

ffmpeg -i input.wmv -s hd720 -c:v libx264 -crf 23 -c:a aac -strict -2 output.mp4

Измените качество видео, указав другой параметр CRF. См. Руководство по кодированию x264 для получения дополнительной информации.

duffydack
источник
1
Опция 'sameq' была удалена. Если вы ищете опцию для сохранения качества (а не для -sameq), используйте -qscale 0 или эквивалентную опцию показателя качества.
Джуанма
Согласно вики ffmpeg , это может быть так просто, как:ffmpeg -i input.avi -vf scale=-1:720 output.avi
andersonvom
4

Время немного изменилось с тех пор, как в 2012 году был принят первоначальный ответ на этот вопрос. В новых версиях FFmpeg лучше использовать «масштабный» видеофильтр FFmpeg.

Ниже приведен пример использования этого фильтра, который также просто копирует звуковую дорожку, как вы просили:

ffmpeg -i input.wmv \
       -c:v libx264 -preset veryslow -tune film -crf 22 -vf scale=-2:720 \
       -c:a copy \
       output.mp4

-tune filmВариант приведенный выше может быть опущен или вы могли бы попробовать в -tune animationзависимости от типа видеоклипа , который вы используете.

Если вы решили , что вы бы хотели , чтобы перекодировать выбор хорошего звука будет использовать внешнюю библиотеку libfdk_aac следующим образом :

ffmpeg -i input.wmv \
       -c:v libx264 -preset veryslow -tune film -crf 22 -vf scale=-2:720 \
       -c:a libfdk_aac -b:a 128k \
       output.mp4

Это, конечно, то, что я сделал бы с wmv-файлом, который я масштабировал, вы найдете результаты более чем приемлемыми ...

andrew.46
источник
1

Если вы хотите сохранить все аудиодорожки, субтитры и т. Д. Без изменений, вы должны использовать что-то вроде этого:

ffmpeg -i input.mkv \
       -map 0:0 -map 0:1 -map 0:2 -map 0:3 -map 0:4 \
       -vf scale=-1:720 -c:v libx264 -crf 18 -preset veryslow \
       -c:a:0 copy -c:a:1 copy -c:s copy \
       output.mkv

В этом случае файл input.mkv содержит две звуковые дорожки и два субтитра. Вы можете указать все звуковые дорожки (или субтитры, или видео, и т. Д.) По одному или как один объект (как я указал для субтитров).

Надеюсь, это поможет...

adsuar
источник
1
Вам не нужно указывать каждый поток описанным выше способом: -map 0:0 -map 0:1 -map 0:2 -map 0:3 -map 0:4 вместо этого вы можете просто указать -map 0вместо этого. Это автоматически выберет все потоки на входе 0. аналогично кодекам аудио копирования. Единственные опции кодека, которые вам нужно указать, это -c:copy -c:v libx264. Это означает: «установите все потоковые кодеки для копирования, кроме видео, которое должно транскодировать в x264».
Cheekysoft
Эквивалент (показывает порядок параметров):ffmpeg -i input.mkv -map 0 -vf scale=-1:720 -c:copy -c:v libx264 -crf 18 -preset veryslow output.mkv
Cheekysoft