У меня есть видео 1080p wmv, которое я хочу преобразовать в видео низкого качества (предпочтительно 720p). Я хотел бы сохранить звук в целости и сохранности. Как я могу сделать это в Ubuntu?
Поскольку вы использовали тег ffmpeg, я буду использовать его для ответа.
ffmpeg -i input.wmv -s hd720 -c:v libx264 -crf 23 -c:a aac -strict -2 output.mp4
Измените качество видео, указав другой параметр CRF. Для получения дополнительной информации см. Руководство по кодированию x264 .
Если вы хотите сохранить нетронутыми все звуковые дорожки, субтитры и т. Д., Вы должны использовать что-то вроде этого:
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 имеет две звуковые дорожки и две субтитры. Вы можете указать все звуковые дорожки (или субтитры, или видео, и т. Д.) По одному или как один объект (как я указал для субтитров).
Надеюсь, это поможет ...
Время немного изменилось с момента принятия первоначального ответа на этот вопрос в 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, который я масштабировал, вы найдете результаты более чем приемлемые ...