LINUX.ORG.RU

пара вопросов по ffmpeg

 ,


0

1

1) Допустим надо сконвертировать из одного формата в другой, но СОХРАНИВ ПО МАКСИМУМУ КАЧЕСТВО.

Есть например музыка в wma, нужно сконвертировать, например, во flac или mp3. Есть ли универсальные способы для этого? Или нужно каждый раз ему указывать битрейт, частоту дискретизации и подобную шелуху? т.е как задать брать по максимуму возможного качества по всем параметрам?

2) Он (ffmpeg) падла портит качество, если всего лишь нужно склеить дорожки из разных файлов, хотя я его не просил портить качество!
При попытке сделать -map 0:1 -map 1:0 он делает перекодирование не спросив меня об этом!!!

Есть ли универсальный ключь типа --save-quality? Нужно как для перекодирования, так для склейки дорожек.

★★★★★

От кодирования во flac качество не ухудшится. От последующего кодирования в любой lossy, естественно, ухудшится. Далеко не всегда форматы lossy позволяют склеивать файлы без перекодирования.

d ★★★★ ()

Он (ffmpeg) падла даже портит качество, если всего лишь нужно склеить дорожки из разных файлов, хотя я его не просил портить его!

Как не просил, когда просил? При кодировании lossy→lossy всегда теряется качество и сделать с этим ничего нельзя.

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

мне нужен ключ, который гарантировано не будет портить (максимально, на сколько это возможно). Ещё раз: я склеивал дорожки, результат — выходной файл раз в 10 меньше! пока я ему не передал -c:a copy -c:v copy он не переставал портить. Так вот, нужно какое-то унифицированное средство оставлчть максимальное качество. а не вводить тонну ключей, просящих не портить. а с конвертацией там ещё больше ключей надо прописывать (flac только пример)

teod0r ★★★★★ ()

Есть например музыка в wma, нужно сконвертировать, например, во flac. Есть ли универсальные способы для этого? Или нужно каждый раз ему указывать битрейт, частоту дискретизации и подобную шелуху?

Битрэйт flac в принципе не позволяет задать. Частоту дискретизации ffmpeg по умолчанию берёт из исходного файла (и вообще лучше её не трогать без ясного понимания что ты делаешь). Конкретно в случае с flac-ом нужно приложить дополнительные усилия чтобы в процессе конвертации изменить звук. Но ты поминаешь -c:v, так что видимо проблемы у тебя не с конвертацией WMA во FLAC. Конвертирование в lossy это всегда потеря качества (точнее исходных данных), и нужно задать (явно или не явно) степень допустимого искажения исходных данных (зачастую задаётся параметром -crf) или другие ограничения.

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

почему когда я просто склеиваю звук и видео он по умолчанию портит качество?
делаю -map:0:1 -map 1:0, а он делает перекодирование в стрёмный формат не спросив меня даже. почему он произвольно меняет формат, без явного указания не делать так — -c:a copy -c:v copy)?

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

поминаешь -c:v, так что видимо проблемы у тебя не с конвертацией WMA во FLAC.

я вообщето 2 разных случая приводил

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

а вот если я хочу музыку конвертировать из одного формата в другой (wma,mp3,flac,opus,...); из того, в чём не видишь ты беды какие (ВСЕ) ключи мне передавать, чтоб получить максимально возможное высокое качество?

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

так кто его просит перекодирование делать? указывается только дорожки склеить? люди вы вообще читаете мои сообщения перед тем как ответить?

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

так все кодеки разные, одинаковых ключей быть не может
музыкой не занимаюсь, не знаю

Ros ★★★ ()

Wma изначально с потерями. Вообще, ужасный формат.

Grapow ()
Ответ на: комментарий от teod0r

Потому что

ffmpeg is a very fast video and audio converter
Его основное назначение — перекодирование. Он может, конечно, выступать ремуксером, но это не его основная функция. Поэтому по умолчанию он кодирует. Не указан кодек — использует кодек по умолчанию. Не указан битрейт — использует битрейт по умолчанию. И так для всех миллионов опций.

P.S. И вообще, если тебе надо просто склеить дорожки, то почему не mkvtoolnix? Ладно бы дело было лет 10 назад, когда ещё существовало (точнее, доживало свой век) много устройств без поддержки матрёшки, но ведь те тёмные времена давно прошли.

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

теперь понятно. а где можно удобно посмотреть все ключи отвечающие за качество индивидуально для каждого формата? рыскать по ману каждый раз для каждого формата и искать там что-то не так удобно. может есть где готовая таблица чисто с перечислением всех опций отвечающих за качество для каждого формата?

teod0r ★★★★★ ()

Перекодирование дорожки кодеком с потерями обязательно будет портить качество. Как и изменение частоты дескретизации/кадров, смена разрешения, наложение фильтров, обрезка кадра. Так что смирись.

Если перекодирование не требуется, то -vcopy -acopy (или я привык -acodec copy -vcodec copy).

kirill_rrr ★★★★★ ()
  1. При конвертации в flac качество не потеряется, но в этом нет смысла, лучше пусть остается в wma. При перекодировании в lossy качество ухудшается всегда.

  2. -c:a copy

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

но в этом нет смысла

есть. девайс (плеер) не поддерживает wma, поддерживает flac и mp3. вот и хотел перекодировать максимально сохранив качество

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

Так и перекодируй в mp3. Посмотри посмотри какой у тебя битрейт в wma и задай такой же через ключ -ab 320k.

Делать из lossy lossless смысла нет.

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

Так и перекодируй в mp3

а mp3 ещё более lossy не сделает? оно ведь низы и верха режет

через ключ -ab 320k.

вот в этом то и проблема, может, там ещё есть тонна опций, отвечающих за качество? есть же ещё частота дискретизации, может, ещё что есть? почему нельзя сразу указать --save-maximum-quality ? мне ведь ещё из opus надо, плеер его тоже не поддерживает... а там ещё, может, какие опции должны быть, мне откуда знать?

teod0r ★★★★★ ()

Нет, универсального ключа нет. Нет, если написать еще десяток сообщений о том как ффмпег! падла!! портит файлы!!! ключ не появится.

biglpfan ()
Ответ на: комментарий от teod0r

есть же ещё частота дискретизации, может, ещё что есть?

ffmpeg выводит тебе что он получает на входе и что ты получишь на выходе.

Типа:

Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 128 kb/s (default)

Вот и последи, чтобы у тебя stereo не превратилось в mono и частоста дискретизации не изменилась.

а mp3 ещё более lossy не сделает? оно ведь низы и верха режет

А ты послушай. Услышишь разницу - попробуй bitrate увеличить.

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

есть же ещё частота дискретизации, может, ещё что есть? почему нельзя сразу указать –save-maximum-quality ?

Частота дискретизации должна быть той же, если ее поменять, это опять приведет к еще какой-то доли потери качества. –save-maximum-quality для mp3 это макс битрейт 320 если прям максимум кволити, меньшие значения внезапно дадут результат хуже, но, конечно, разницы ты можешь не услышать. Поэтому такой опции нет. Если место не проблема, перегоняй во флак или 320 mp3, последнее все равно будет раза в 3 меньше флака.

мне ведь ещё из opus надо

Имей в виду, что opus 160k примерно соответствует mp3 320)

goingUp ★★★★★ ()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.