jak przekonwertować avi (xvid) na mkv lub mp4 (h264)

19

Bardzo noob, jeśli chodzi o wideo. Próbuję zrozumieć, co znajduję za pośrednictwem Google ... ale dla mnie to głównie greckie.

Mam kilka plików Avi, które nie będą odtwarzane w moim pudełku WD TV Play. Mediainfo mówi mi, że są Xvid. Specyfikacje pudełka pokazują, że powinno być dobrze ... ale przeglądanie forów mówi, że jest hitem. Chciałbym więc spróbować przekonwertować je na pliki MKV lub MP4 zakodowane w formacie h264.

Rozumiem, że avconv jest narzędziem, ale czytanie instrukcji naprawdę mnie naprawdę zdezorientowało.

Wypróbowałem bardzo podstawowy przykład:

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

zajęło to mniej niż 4 sekundy. I zadziałało ... tak jakby. „Grało się” w to, że coś pojawiło się na ekranie ... ale były okropne artefakty, a sceny po prostu stopiły się ze sobą. Jeśli to możliwe, chcę zachować jakość.

Nie martwię się o rozmiar pliku. Nie przejmuję się też strasznie czasem, pod warunkiem, że mogę to zrobić naraz.

Czy ktoś może zapoznać się z procesem, proszę dać mi polecenie z opcjami?

Dziękuję za pomoc

Publikuję informacje multimedialne na wypadek, gdyby to pomogło:

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)
bcsteeve
źródło
Należy rozważyć ponowne kodowanie z jednego stratnego kodeka na inny. W przypadku, gdy wideo znajduje się w koderze Xvid, po prostu prześlij go ponownie do kontenera Matroska.
v010dya,

Odpowiedzi:

44

Standardowe polecenie z http://manpages.ubuntu.com/manpages/precise/man1/avconv.1.html pokazuje to:

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

Spowoduje to ponowne zakodowanie filmu do h264 (= AVC) i zachowanie niezmienionego dźwięku, który jest mp3 i całkowicie zgodny ze standardem.

Kilka innych opcji do rozważenia za pomocą tego wiersza poleceń to:

  • Popraw jakość wyjściowego wideo za pomocą -bparametru (bitrate) lub użyj Constant Rate Factor (CRF) z czymś takim jak-crf 22
  • Użyj ustawienia wstępnego libx264, na przykład w -preset veryslowcelu ulepszenia wideo

Jeśli z nich skorzystasz, opcje należy umieścić po -c:v libx264opcji ...

Można też spojrzeć na programach graficznych winffi avidemuxco uczyni rzeczy mniej skomplikowane. (też handbrakejest dobry, ale nigdy się z tym nie pogodziłem)

thom
źródło
Ha! Nie wiem, jak patrzysz na tę pożerającą stronę podręcznika i wyciągasz tę linię jako oczywiste „standardowe polecenie” ... ale jestem wdzięczny, że to zrobiłeś! Zadziałało. Doceniam to.
bcsteeve,
Dzięki za wzmiankę o hamulcu ręcznym - miałem go i zupełnie o nim zapomniałem. Skończyło się na tym, że go otworzyłem, szukając folderu z filmami, wrzuciłem do niego wszystkie filmy, uporządkowałem je wszystkie i nacisnąłem „Koduj”!
scorpiodawg
W przypadku dźwięku AAC wiele urządzeń może mieć dekoder sprzętowy, więc utrzymanie go w formacie MP3 niekoniecznie jest lepsze.
ccpizza
4

Jeśli szukasz czegoś graficznego, możesz rozważyć użycie pakietu mkvtoolnix-gui. Zależy to od narzędzia wiersza poleceń, ale wykona polecenie ze wszystkimi potrzebnymi opcjami.

GUI mkvmerge 1

Pierwszą rzeczą, którą musisz zrobić, to dodać pliki zawierające wszystkie potrzebne strumienie. Robisz to (oczywiście), naciskając przycisk Dodaj i wybierając plik lub przeciągając pliki do obszaru „Pliki wejściowe”. Nie należy używać przycisku dołączania, chyba że intencją jest umieszczenie zawartości jednego pliku za zawartością innego (co czyni końcowy czas trwania pliku sumą wszystkich dołączonych plików).

Ponieważ mówisz, że planujesz po prostu przekonwertować .avipliki, powinieneś po prostu dodać jeden plik naraz. Zauważ, że pierwszy plik, który dodasz, automatycznie ustawi nazwę pliku wyjściowego, będzie pasował do nazwy wejściowej, ale rozszerzenie zostanie zmienione na .mkv. Możesz to oczywiście zmienić, jeśli chcesz.

Po dodaniu czegoś będziesz mógł zmienić parametry strumieni (np. Przypisany język, domyślnie czy ścieżka jest „włączona” i czy użytkownik może zdecydować o wyłączeniu tego strumienia razem, jeśli ktoś sobie tego życzy).

Możesz podać tytuł strumienia. Sugeruję, że jeśli masz wideo audio, którego używasz wraz z językiem. Na przykład możesz mieć „oryginalny” lub „pojedynczy głos” lub „komentarz reżysera” dla nazw utworów. Wielu graczy pokaże Ci je po wybraniu strumienia do gry, i jest to bardzo przydatne. Staraj się jednak nie powtarzać tam informacji. Nie ma powodu, aby pisać „język angielski”, kiedy można po prostu ustawić kod języka ścieżki.

Istnieje również kilka konkretnych opcji, które zależą od strumienia, nad którym pracujesz.

mkvmerge gui 2

Czasami możesz chcieć dodać jakieś załączniki do swojego pliku. Jeśli dodasz obraz, wiele menedżerów plików wyświetli to zdjęcie jako ikonę końcowego pliku wideo. Jeśli miksujesz jakiś film i zdarza się, że masz do niego przykrywkę, dobrym pomysłem może być włożenie go jako załącznika.

mkvmerge gui 3

Wreszcie na karcie Globalne możesz ustawić metadane dla całego pliku. Najczęstszą rzeczą jest ustawienie tytułu. Zostaną one wstępnie wypełnione danymi pobranymi z pierwszego pliku dodanego do „Plików wejściowych”.

Możesz także dodać informacje o rozdziale. Mkvmerge potrafi czytać pliki rozdziałów ogm oraz rozdziały xml. Pozwala również edytować pliki rozdziałów, ale należy pamiętać, że ta karta działa jako osobna aplikacja, więc nie będziesz edytować rozdziałów dodanych do pliku wyjściowego, musisz zapisać je na tej karcie, a następnie dodaj je jako dane wejściowe do pliku, który teraz kopiujesz.

Ciekawą cechą mkvmerge gui jest „Kopiuj do schowka”, który kopiuje dokładne polecenie terminalu, które aplikacja zamierza uruchomić. Jeśli chcesz zmiksować wiele plików, możesz ustawić jeden tak, jak lubisz, a następnie skopiuj polecenie do schowka i utwórz skrypt bash, który zrobi wszystkie potrzebne pliki jednocześnie.

v010dya
źródło
Jak to zacząć?
uvasal
1
mmg jest odpowiedzią
uvasal
2

Avidemux to darmowy edytor wideo przeznaczony do prostych zadań cięcia, filtrowania i kodowania. Obsługuje wiele typów plików, w tym AVI, pliki MPEG kompatybilne z DVD, MP4 i ASF, przy użyciu różnych kodeków. Zadania mogą być zautomatyzowane za pomocą projektów, kolejki zadań i zaawansowanych funkcji skryptowych. Avidemux jest dostępny dla Ubuntu.

sudo apt-get update
sudo apt-get install avidemux
Kyodake
źródło
0

Użyłem następujących dwóch poleceń, aby przekonwertować moje pliki AVI na pliki MP4, które prawidłowo przesyłałyby strumieniowo z mojego 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

ffmpegkonwertuje plik AVI do MP4, zmieniając profil wideo i format pikseli, aby były zgodne z powszechnie akceptowanymi wartościami. MP4Boxponownie pakuje strumienie do ostatecznego MP4 i dodaje standardowe metadane.

Patrick Ring
źródło
-strict -2nie jest potrzebne do kodowania dźwięku AAC, chyba że twój ffmpegjest bardzo stary. Możesz MP4Boxdodać pominięcie, jeśli dodasz -movflags +faststartopcję wyjścia w ffmpeg.
llogan