Zakoduj za pomocą ffmpeg za pomocą avi na mp4

27

Jakich wierszy poleceń użyć do konwersji z avi na mp4, ale bez niszczenia rozmiaru ramki i zmniejszania rozmiaru pliku do pierwotnego rozmiaru lub nieco większego, i to samo z mp4 na avi? Ilekroć próbowałem przekonwertować to stało się jak 2 GB

dołek
źródło

Odpowiedzi:

33

W zależności od sposobu zakodowania oryginalnego pliku zachowanie rozmiaru pliku może nie być możliwe.

ffmpeg -i infile.avi youroutput.mp4

powinien zachować nienaruszone rozmiary i szybkości klatek podczas tworzenia pliku MP4.

ffmpeg -i infile.avi

poda informacje o pliku wejściowym - rozmiar ramki, użyte kodeki, szybkość transmisji itp.

Możesz także grać z opcjami acodeci vcodecpodczas generowania wyników. Pamiętaj również, że pliki mp4 i avi mogą korzystać z różnych kodeków, a przebieg może się różnić w zależności od wybranego kodeka.

wariat
źródło
6
Myślę, że lepiej jest używać ffprobe -i infile.avizamiast ffmpeg -i infile.avido uzyskiwania informacji, ponieważ powoduje to błąd „Co najmniej jeden plik wyjściowy musi zostać określony”.
Francesco Turco,
Dzięki, Francesco. Twoje podejście jest bardziej eleganckie niż moje ;-)
rbanffy 24.09.12
6

Byłem bardzo zainteresowany konwersją plików AVI do MP4. Czytając twój post, przypomniałem sobie polecenie ffmpeg:

ffmpeg -i input.avi -strict -2 output.mp4

Polecenie -strict -2jest wymagane przez kodek AAC, który jest eksperymentalny, ale działa (libaac), jeśli dodasz te dwa parametry. Plik wyjściowy jest domyślnie wysokiej jakości.

Robis54
źródło
2

O ile rozumiem, należy wymienić avi-container na mp4 one (formalnie - podstawowy format pliku multimedialnego ISO ISO / IEC 14496-12).

jeśli uruchomisz następujące polecenie:

ffmpeg -i input.avi -y output.mp4

W takim przypadku ffmpeg ponownie koduje strumienie elementarne w pliku input.avi (pojemniki cahnge i ponowne kodowanie jest domyślnym trybem ffmpeg ). Warto zauważyć, że ponowne kodowanie może pogorszyć jakość obrazu i / lub słuchu.

Dlatego zaleca się wyłączenie ponownego kodowania za pomocą opcji kodeka „ c: v copy c: a copy ”:

ffmpeg -i input.avi -c:v copy -c:a copy -y output.mp4

W powyższym przypadku ffmpeg zmienia jedynie powłoki (kontenery)

Szewach Riabcew
źródło
0

Znalazłem ten :: Libav w systemie Linux.

Instalacja: uruchom polecenie

sudo apt-get install libav-tools

Polecenie konwersji wideo:

Przejdź do folderu zawierającego wideo i uruchom terminal

avconv -i oldvideo.mp4 -ar 22050 convertedvideo.webm
Vishal
źródło