Odpowiedzi:
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 acodec
i vcodec
podczas 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.
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 -2
jest 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.
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)
ffprobe -i infile.avi
zamiastffmpeg -i infile.avi
do uzyskiwania informacji, ponieważ powoduje to błąd „Co najmniej jeden plik wyjściowy musi zostać określony”.