Jeśli wolisz wiersz poleceń, możesz użyć ffmpeg
(lub handbrake-cli
).
MP4
Zakładając, że używasz najnowszej wersji ffmpeg
:
ffmpeg -i input -c:v libx264 -crf 23 -preset medium -c:a aac -b:a 128k \
-movflags +faststart -vf scale=-2:720,format=yuv420p output.mp4
-crf
: Jakość. Zakres jest logarytmiczny od 0 (bezstratny) do 51 (najgorsza jakość). Domyślnie jest 23. Subiektywny rozsądny zakres to ~ 18-28 lub więcej. Użyj najwyższej wartości, która nadal zapewnia akceptowalną jakość. Jeśli ponownie kodujesz niepraktycznie duże dane wejściowe do przesłania do YouTube lub podobnego, spróbuj wartości 17 lub 18, ponieważ te usługi wideo i tak zostaną ponownie zakodowane.
-preset
: Szybkość kodowania. Wolniejsze ustawienie wstępne zapewnia lepszą kompresję (jakość według rozmiaru pliku), ale jest wolniejsze. Użyj najwolniejszej cierpliwości: ultraszybkiej, superszybkiej, bardzo szybkiej, szybkiej, szybkiej, średniej (domyślnie), wolnej, wolniejszej, bardzo wolnej.
-movflags +faststart
: Umożliwia odtwarzanie wideo przed jego całkowitym pobraniem w przypadku stopniowego pobierania. Przydatne, jeśli hostujesz wideo, w przeciwnym razie zbędne, jeśli zostanie przesłane do usługi wideo, takiej jak YouTube.
-vf scale=-2:720,format=yuv420p
: A filtergraph stosując skalę i Format filtry wideo. Skaluj do wysokości 720 pikseli i automatycznie wybierz szerokość, która zachowa proporcje, a następnie upewnij się, że format pikseli jest zgodny z głupimi odtwarzaczami.
-b:a 128k
: Szybkość transmisji audio. Jeśli twój ffmpeg
jest nieaktualny, musisz dodać, -strict experimental
aby użyć -c:a aac
.
MOV
Ponieważ pliki MOV i MP4 prawdopodobnie zawierają te same formaty wideo i audio, możesz zakodować MP4 i utworzyć MOV poprzez ponowne zmiksowanie (w trybie kopiowania strumieniowego ) zamiast ponownego kodowania:
ffmpeg -i input.mp4 -codec copy output.mov
WMV
FFmpeg obsługuje tylko WMV 7 i 8. Nie znam kodera open source dla wersji 9.
$ ffmpeg -encoders | grep -i windows
[...]
V..... = Video
A..... = Audio
------
V..... wmv1 Windows Media Video 7
V..... wmv2 Windows Media Video 8
A..... wmav1 Windows Media Audio 1
A..... wmav2 Windows Media Audio 2
Ponieważ nie znam tych koderów, mogę podać tylko niesprawdzony przykład:
ffmpeg -i input -c:v wmv2 -b:v 1024k -c:a wmav2 -b:a 192k output.wmv
Pierwsze ffmpeg
Możesz pobrać kompilację ffmpeg na Linuksa lub postępować zgodnie ze szczegółowymi instrukcjami kompilacji ffmpeg, aby dostosować kompilację.
Używanie bash „for loop”, aby wykonać kodowanie wsadowe
Aby zakodować wszystkie filmy w katalogu:
$ mkdir encoded
$ for f in *.avi; do ffmpeg -i "$f" -c:v libx264 -crf 23 -preset medium \
-c:a aac -b:a 128k -movflags +faststart -vf scale=-2:720,format=yuv420p \
"encoded/${f%.avi}.mp4"; done
Zobacz także