як конвертувати avi (xvid) у mkv або mp4 (h264)


19

Дуже нуб, коли мова йде про відео. Я намагаюся зрозуміти те, що я знаходжу через Google ... але це здебільшого грецьке для мене.

У мене є маса файлів Avi, які не відтворюються у вікні Play WD TV Play. Медіаінфо повідомляє мені, що вони є xvid. Характеристики для скриньки показують, що це повинно бути добре ... але копання по форумах говорить про її хіт-пропуск. Тому я хотів би спробувати перетворити їх у MKV або mp4-кодовані файли h264.

Я збираю avconv - це інструмент, але читання посібника просто нас справді заплутало.

Я спробував дуже базовий приклад:

avconv -i file.avi -c copy file.mp4

це зайняло менше 4 секунд. І це спрацювало ... якось. Це "зіграло" в тому, що щось з'явилося на екрані ... але сталося жахливе артефактування, і сцени просто наплавлялися одне до одного. Я хочу зберегти якість, якщо це можливо.

Мене не хвилює розмір файлу. Мене не страшно хвилює час, який потрібен, за умови, що я можу зробити їх партією.

Чи може хтось знайомий із процесом, будь ласка, дайте мені команду з параметрами?

Дякую за твою допомогу.

Я публікую медіаінфо, якщо це допоможе:

General
Complete name                            : \\SERVER\Video\Public\test.avi
Format                                   : AVI
Format/Info                              : Audio Video Interleave
File size                                : 189 MiB
Duration                                 : 11mn 18s
Overall bit rate                         : 2 335 Kbps
Writing application                      : Lavf52.32.0

Video
ID                                       : 0
Format                                   : MPEG-4 Visual
Format profile                           : Advanced Simple@L5
Format settings, BVOP                    : 2
Format settings, QPel                    : No
Format settings, GMC                     : No warppoints
Format settings, Matrix                  : Default (H.263)
Muxing mode                              : Packed bitstream
Codec ID                                 : XVID
Codec ID/Hint                            : XviD
Duration                                 : 11mn 18s
Bit rate                                 : 2 129 Kbps
Width                                    : 720 pixels
Height                                   : 480 pixels
Display aspect ratio                     : 16:9
Frame rate                               : 29.970 fps
Standard                                 : NTSC
Color space                              : YUV
Chroma subsampling                       : 4:2:0
Bit depth                                : 8 bits
Scan type                                : Progressive
Compression mode                         : Lossy
Bits/(Pixel*Frame)                       : 0.206
Stream size                              : 172 MiB (91%)
Writing library                          : XviD 1.2.1 (UTC 2008-12-04)

Audio
ID                                       : 1
Format                                   : MPEG Audio
Format version                           : Version 1
Format profile                           : Layer 3
Mode                                     : Joint stereo
Mode extension                           : MS Stereo
Codec ID                                 : 55
Codec ID/Hint                            : MP3
Duration                                 : 11mn 18s
Bit rate mode                            : Constant
Bit rate                                 : 192 Kbps
Channel(s)                               : 2 channels
Sampling rate                            : 48.0 KHz
Compression mode                         : Lossy
Stream size                              : 15.5 MiB (8%)
Alignment                                : Aligned on interleaves
Interleave, duration                     : 24 ms (0.72 video frame)

Вам слід розглянути можливість повторного кодування з одного втраченого кодека на інший. У випадку, коли ваше відео знаходиться в кодеці Xvid, просто перейміть його в контейнер Matroska.
v010dya

Відповіді:


44

Стандартна команда з http://manpages.ubuntu.com/manpages/precise/man1/avconv.1.html показує це:

avconv -i test.avi -c:v libx264 -c:a copy outputfile.mp4

Це перекодуватиме ваше відео на h264 (= AVC) та збереже звук незмінним, що є mp3 та повністю законним для стандарту.

Ще кілька варіантів, які слід врахувати за допомогою цього командного рядка:

  • Налаштуйте якість вихідного відео за допомогою -bпараметра (бітрейт) або використовуйте коефіцієнт постійної швидкості (CRF) з чимось подібним-crf 22
  • Використовуйте попередньо встановлену програму libx264, наприклад, -preset veryslowдля покращення відео

Якщо ви використовуєте ці, параметри слід розмістити після -c:v libx264опції ...

Ви також можете ознайомитись з програмами графічного інтерфейсу, winffі avidemuxце зробить речі менш складними. (теж handbrakeхороший, але я ніколи з цим не погоджувався)


Га! Я не знаю, як ти дивишся на ту гоб-де-гук манпайгу і виводиш цю лінію як очевидну "стандартну команду" ... але я вдячний, що ти це зробив! Це спрацювало. Я ціную це.
bcsteeve

Дякую за те, що згадав Handbrake - у мене був і зовсім забув про нього. Я в кінцевому підсумку відкрив його, шукав свою папку фільмів, прогризав усі відео, завів їх усіх і натиснув "Кодувати"!
скорпіодавг

Для звуку AAC багато пристроїв можуть мати апаратний декодер, тому зберігати його як MP3 не обов’язково краще.
ccpizza

4

Якщо ви шукаєте щось графічне, ви можете скористатися пакетом mkvtoolnix-gui. Це насправді залежить від утиліти командного рядка, але вона виконає команду з усіма необхідними для вас параметрами.

mkvmerge gui 1

Перше, що вам потрібно зробити, - це додати файли, що містять усі необхідні потоки. Ви робите це (очевидно), натискаючи кнопку "Додати" та вибираючи файл, або перетягуючи свої файли в область "Введення файлів". Не слід використовувати кнопку додавання, якщо тільки ви не маєте наміру розмістити вміст одного файлу після вмісту іншого (перетворення остаточного файлу на суму всіх доданих файлів).

Оскільки ви говорите, що плануєте просто конвертувати .aviфайли, то вам слід просто додати один файл одночасно. Зауважте, що перший файл, який ви додасте, автоматично встановить ім'я вихідного файлу, він відповідатиме вхідному імені, але розширення буде змінено на .mkv. Звичайно, ви можете це змінити, якщо хочете.

Після того, як ви додасте щось, ви зможете змінити параметри потоків (наприклад, призначена мова, чи трек за замовчуванням "увімкнено") та чи може користувач вирішити відключити цей потік усі разом, якщо бажає.

Ви можете дати назву потоку. Я пропоную, якщо у вас є багато аудіо-відео, яке ви використовуєте разом із мовою. Наприклад, ви можете мати "оригінал" або "одноголосний дуб" або "коментар режисера" для назв треків. Багато гравців покажуть вам це, коли ви виберете потік для відтворення, і це дуже корисно. Спробуйте не повторювати інформацію там. Немає підстав писати "Англійська мова", коли ви можете просто встановити код мови треку.

Існують також деякі конкретні варіанти, які залежатимуть від того, над яким потоком ви працюєте.

mkvmerge gui 2

Іноді ви можете додати деякі файли до свого файлу. Якщо ви додасте зображення, багато файлових менеджерів відображатимуть це зображення як піктограму остаточного відеофайлу. Якщо ви муксуєте якусь плівку, і у вас, можливо, є обкладинка для неї, можливо, це буде хорошим вибором, щоб поставити її як додаток.

mkvmerge gui 3

Нарешті, на вкладці Глобальний ви зможете встановити метадані для всього файлу. Найпоширеніше - встановити заголовок. Він буде попередньо заповнений даними, отриманими з першого файлу, який ви додали до "Вхідних файлів".

Ви також можете додати інформацію глави. Mkvmerge вміє читати файл глави ogm, а також xml глави. Він також дозволяє редагувати файли глав, але майте на увазі, що ця вкладка функціонує як окрема програма, тому ви не будете редагувати глави, додані до вихідного файлу, вам потрібно буде зберегти їх на цій вкладці, а потім додайте їх як вхід до файлу, який ви зараз відтворюєте.

Цікавою особливістю mkvmerge gui є "Копіювати в буфер обміну", який копіює точну команду термінала, яку планує запустити програма. Якщо ви маєте намір виправити багато файлів, ви можете налаштувати один із них, як вам це подобається, а потім скопіюйте команду в буфер обміну та зробіть скрипт bash, який робить усі потрібні файли одразу.


Як ви це починаєте?
uvasal

1
mmg - відповідь
uvasal

2

Avidemux - це безкоштовний редактор відео, призначений для простого вирізання, фільтрації та кодування завдань. Він підтримує безліч типів файлів, включаючи файли MPEG, сумісні з AVI, DVD, MP4 та ASF, використовуючи різні кодеки. Завдання можна автоматизувати за допомогою проектів, черги на роботу та потужних можливостей сценарію. Для Ubuntu доступний Avideemux.

sudo apt-get update
sudo apt-get install avidemux



0

Наступні дві команди я використовував для перетворення своїх AVI-файлів у MP4-файли, які правильно передаватимуться з мого WD My Cloud Mirror:

ffmpeg -i infile.AVI -strict -2 -profile:v baseline -pix_fmt yuv420p temp.mp4
MP4Box -mpeg4 -brand mp42:0 -add temp.mp4#video:name= -add temp.mp4#audio:name= -new outfile.mp4

ffmpegперетворює файл AVI в MP4, змінюючи відео профіль та формат пікселів, щоб вони відповідали загальноприйнятим значенням. MP4Boxперепаковує потоки в кінцевий MP4 і додає стандартні метадані.


-strict -2не потрібен для кодування аудіо AAC, якщо ваш ffmpegдуже старий. Ви можете пропустити, MP4Boxякщо додати -movflags +faststartопцію виводу в ffmpeg.
логіан
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.