To pytanie ma już odpowiedź tutaj:
Obecnie konwertuję pliki flash .flv na .webm i .mp4 do użycia z odtwarzaczem wideo HTML5.
_
Używam tego polecenia ffmpeg dla WEBM: ffmpeg -i filename.flv -vcodec libvpx -acodec libvorbis filename.webm
który działa świetnie, a rozmiar pliku pozostaje względnie taki sam (ważny).
_
W przypadku MP4 używam: ffmpeg -i filename.flv -sameq -ar 22050 filename.mp4
Konwertuje do formatu .mp4 fine i zapobiega utracie jakości, ale rozmiar pliku prawie trzykrotnie.
Jakiej formuły ffmpeg można użyć do konwersji na MP4 bez utraty zbyt wysokiej jakości i zapobiegania znacznie większemu rozmiarowi pliku?
mpeg4
. Zgodnie z danymi wyjściowymiffmpeg --help muxer=mp4
mojego komputera, ffmpeg używa h264 jako domyślnego kodeka wideo mp4.To polecenie zmienia tylko kontener bez ponownego kodowania
źródło
for %%a in ("*.flv") do ffmpeg -i "%%a" -codec copy "%%~na.mp4"
następnie uruchom plik convert.bat w folderze z plikami * .flv-codec copy
do pliku .mp4 działa tylko w bardzo rzadkim przypadku, gdy audio i wideo są już zakodowane w H.264 i AAC. Zobacz superuser.com/a/1009539/390946 i addpipe.com/blog/flv-to-mp4 .avconv
iffmpeg
są w gruncie rzeczy tym samym. [od BARDZO ostatnio istnieje SZEŚĆ rozbieżność, ale nie ma o czym pisać, jeśli skompilujesz własneffmpeg
[ten, na przykład w repozytoriach Ubuntu, jest STARY i cierpi z powodu tego rozmiaru wideo, nie jest bla bla bla bla [w zasadzie próbuje aby powiedzieć, że wideo ma niewłaściwe proporcje], ale jeśli maszffmpeg
problem z przeczytaniem przewodnika kompilacji i skompilowania go z git, nie ma żadnych problemów ze starszymi wersjami, które są dostępne w większości systemów operacyjnych. ostrzeżenie amortyzacja powołując sięavconv
mówi, że oni stworzyli nowszą util aby spróbować wymienićffmpeg
, ale to jest tak szeroko stosowane, że nawet gdyby próbowali odetnij ją, że wszyscy się tworząc softlinks odavconv
doffmpeg
tak czy inaczej, żeby nie przestali pracować i nie upuścili go.]]Nie jest to nic złego w użyciu
avconv
, właśnie widziałem jedną odpowiedź, w której wspomniano o ostrzeżeniu o amortyzacji, które jest w zasadzie pustą wiadomością, raczej dla alternatywy dla ffpmeg, którą możesz wypróbować avconv, która jest bardziej prawdziwa w tym przypadku.jest tak samo SAMY jak
Zasadniczo w pierwszym przypadku korzystasz z opcji dla osób o mniejszej liczbie osób, a w drugim - bardziej wypisanej.
RÓWNIEŻ
-map 0
odnosi się do ścieżek audio, więc jeśli używasz czegoś takiego,mp4a
który może obsługiwać wiele ścieżek audio w porządku, możesz to wyłączyć, aby skopiować wszystkie strumienie audio do pliku wynikowego. Jest to wymagane tylko wtedy, gdy używasz kodeka, który nie obsługuje wielu ścieżek audio w tym samym pliku, to chcesz zmapować potrzebny dźwięk i nie wszystkie. Oczywiście, jeśli próbujesz zminimalizować zużycie miejsca, możesz podać tylko jedną, która spróbuje powalić plik na odrobinę rozmiaru [dźwięk jest jak 1/3 wielkości ścieżki wideo [i to jest hojne]].-c:v = codec(video)
więc:-c:v libx264
jest taki sam jak przy użyciu:-vcodec libx264
FYI; to samo z tym przykładem:-c:v copy = -vcodec copy
a ponadto w przypadku plików FLV należy zachować ostrożność, ponieważ plik flv jest taki sam jak plik avi, ponieważ jest pojemnikiem, który może zawierać dowolną liczbę kodeków dla obrazu lub dźwięku. Najpierw chciałbyś użyć wybranego narzędzia do inspekcji mediów, aby zobaczyć, co jest używane w samym pliku, zanim zdecydujesz się po prostu skopiować strumień wideo i / lub audio lub jeśli chcesz przenieść go z czegokolwiek do nowego. Tak więc polecenie, które działa najlepiej dla jednego pliku FLV, może nie być takie samo dla innego pliku FLV [oczywiście ZWYKLE jeśli otrzymujesz wiele plików FLV z tego samego źródła, zostaną one zakodowane w ten sam sposób, ale nigdy nie jest to gwarancją].
Nie próbując podrywać, po prostu natknąłem się na to podczas wyszukiwania w Internecie i chciałem spróbować trochę wyjaśnić ludziom.
Ponownie, ponieważ odpowiedź brzmi dla odpowiedzi poniżej tego TAK, działający ffmpeg zawsze opublikuje tę wiadomość, jest ona zasadniczo pusta, ponieważ te 2 narzędzia są nadal takie same, z niewielką różnicą. Prawie we wszystkich przypadkach powinieneś uzyskać dokładnie takie same wyniki za pomocą dowolnego polecenia. To niekoniecznie spowoduje pełne ponowne transkodowanie, dlaczego? A, jeśli nie jest potrzebny, oszczędza mnóstwo czasu, a B, jeśli ponownie transkodujesz plik, który został już skompresowany do kodeka wideo, zasadniczo uruchamiasz procedurę kompresji w stosunku do czegoś, co jest już skompresowane i zawsze spowoduje w gorszej jakości niż źródło. Większość nowszych kodeków jest w pewnym stopniu kompatybilna krzyżowo [nie wszystkie], na przykład flv może technicznie być MP4 w opakowaniu FLV, ponieważ pliki FLV, takie jak AVI, są tylko kontenerami innych kodeków. Więc, zależy to od tego, co źródłowy plik flv ma dla wideo i kodeka ausio w porównaniu z tym, na co go konwertujesz, czy w ogóle należy go transkodować. Jeśli w FLV użyli wideo H264 MP4 i MP4a dla dźwięku, nie trzeba będzie ponownie transkodować tego, co trzeba tylko skopiować i wyregulować nagłówki plików, aby było czytane jako prawdziwe MP4 zamiast wideo MP4 wewnątrz pliku FLV.
źródło
Zgodnie z tym przewodnikiem właściwym poleceniem konwersji FLV na MP4 bez jakiegokolwiek przekodowywania AV jest:
Działa idealnie dla mnie we wszystkich przypadkach z wideo AVC i audio AAC lub MP3.
źródło
Podczas korzystania z ffmpeg dostałem ostrzeżenie o wycofaniu, aby użyć avconv. Korzystając z avconv uzyskałem dobre wyniki:
Przeczytaj,
man avconv
aby uzyskać więcej informacji.źródło
ffmpeg
samo nie jest przestarzałe . Powodem, dla którego wygląda dobrze, jest to, że określasz koder x264, który ma ładne domyślne ustawienia jakości.Sugeruję utworzenie skryptu powłoki dla tego wywołanego
video_flv_to_mp4
z następującą zawartością:Następnie uruchom go w następujący sposób:
Otrzymasz plik video.flv.mp4.
źródło
-sameq
nie jest już prawidłową opcją dla ffmpeg. Nie oznacza to również „tej samej jakości”. Zobacz także ten post .