Praca z multimediami często wymaga zmiany charakterystyki plików multimedialnych, takich jak szybkość transmisji bitów czy rozdzielczość. Znalezienie prostego sposobu na rozpoczęcie pracy może onieśmielające. Na tej stronie dowiesz się więcej o używanych narzędziach i sposobach, aby szybko je zainstalować.
Najpierw opisujemy podstawowe zastosowania 2 popularnych narzędzi multimedialnych z wierszem poleceń: Shaka Packager i FFmpeg, a my pomożemy Ci szybko zainstalować narzędzia. Dlaczego warto uwzględnić 2 aplikacje? Oba rozwiązania są skuteczne i użyteczne, ani nie robi wszystkiego, co jest potrzebne do przygotowania multimediów do działania w internecie. Utworzyliśmy także Konwersja mediów i Szyfrowanie multimediów strony, które zawierają o wiele częstsze operacje w tych 2 aplikacjach.
Te aplikacje nie są jedynymi opcjami dostępnymi podczas zadań związanych z manipulacją plikami, ale są to 2 najpowszechniejsze i najbardziej skuteczne. Inne opcje obejmują fakturę GUI dla aplikacji Miro, HandBrake i VLC. Dostępne są też kodowanie/transkodowanie takich jak Zencoder, Amazon Elastic Encoder czy Google Transcoder API.
Pakowanie Shaka
Shaka Packager to bezpłatny pakiet SDK do pakietów multimedialnych. Korzystanie z odtwarzacza w swojej witrynie użyj narzędzia Shaka Packager, które służy do przygotowywania plików. it obsługuje konwersję w przypadku 2 najpopularniejszych protokołów strumieniowego przesyłania wideo: Adaptacyjne transmitowanie przez HTTP (DASH) lub HTTP Live Streaming (HLS). Shaka System pakujący obsługuje kluczowe funkcje zabezpieczeń: popularne szyfrowanie i Widevine digital zarządzanie prawami (DRM). Obsługuje też transmisje na żywo i wideo na żądanie.
Wbrew temu, co znajduje się na opakowaniu, to narzędzie działa nie tylko w języku C++ dla programistów. Można jej używać zarówno jako biblioteki do tworzenia oprogramowania multimedialnego, jak i narzędzia wiersza poleceń służącego do przygotowywania plików multimedialnych do odtwarzania w internecie. Jest który będzie dla nas przydatny w tym przypadku. Twórcy mediów internetowych Shaka Packager to jedyny sposób na wykonywanie niektórych zadań bez wydawania pieniędzy do drogich komercyjnych zastosowań.
Oto podstawowy wzorzec polecenia Shaka Packager:
packager stream_descriptor [stream_descriptor-2 [stream_descriptor-n]] [flags]
To nie wszystko się wyświetli, gdy wpiszesz packager -help
. Ten przykład jest
łatwiej jest wyciągnąć wnioski, co odzwierciedla przykłady w
Dokumentacja programu Shaka Packager Pamiętaj, że jest wiele kategorii stream_descriptor
.
we wzorze. Chociaż nie jest ona widoczna, możesz manipulować filmem
i strumienie audio z pliku
z osobna w jednym poleceniu.
Porównaj ten podstawowy wzorzec z prostym zastosowaniem, które wyświetla charakterystykę plików. W przykładzie ułożyliśmy równoważne części.
packager stream_descriptor [stream_descriptor-n] [flags]
packager input=glocken.mp4 --dump_stream_info
Wynik polecenia:
File "glocken.mp4":
Found 2 stream(s).
Stream [0] type: Video
codec_string: avc1.640028
time_scale: 30000
duration: 300300 (10.0 seconds)
is_encrypted: false
codec: H264
width: 1920
height: 1080
pixel_aspect_ratio: 1:1
trick_play_factor: 0
nalu_length_size: 4
Stream [1] type: Audio
codec_string: mp4a.40.2
time_scale: 48000
duration: 481280 (10.0 seconds)
is_encrypted: false
codec: AAC
sample_bits: 16
num_channels: 2
sampling_frequency: 48000
language: eng
seek_preroll_ns: 20833
Zwróć uwagę na cechy omówione w podstawowych informacjach dotyczących plików multimedialnych. i zwróć uwagę na kilka rzeczy. Wysokość i szerokość są prawidłowe dla Full HD, a audio i wideo należą do preferowanych kodeków do stosowania w kontenerach tego typu. AAC dla dźwięku i H264 dla wideo. Zwróć też uwagę, że strumienie są identyfikowane za pomocą liczby. Przydają się one podczas działań związanych z dźwiękiem i obrazem oddzielnie.
Zwróć uwagę, że dane wyjściowe nie pokazują szybkości transmisji bitów. Pomimo tego, czego brakuje, te dane wyjściowe są łatwiejsze do odczytania, dlatego używamy ich, gdy tylko jest to możliwe. Gdy potrzebujemy których nie możemy pobrać z programu Shaka Packager, takich jak szybkość transmisji bitów, korzystamy z formatu FFmpeg.
FFmpeg
FFmpeg to również bezpłatna aplikacja do nagrywania, konwertowania i strumieniowania. plików multimedialnych. Jej możliwości nie są lepsze ani gorsze niż Shaka Packager. Są po prostu inne.
Podstawowy wzorzec polecenia FFmpeg wygląda tak:
ffmpeg [GeneralOptions] [InputFileOptions] -i input [OutputFileOptions] output
Podobnie jak Shaka Packager, ta aplikacja może obsługiwać wiele strumieni. Niektóre opcje są używane w wielu lokalizacjach i w różny sposób modyfikują dane wyjściowe pliku w zależności od ich pozycji w poleceniu. Pamiętaj o tym przeczytaj pytania FFmpeg na Stack Overflow i na podobnych stronach.
Ponownie porównamy podstawowy wzorzec z przykładem wyświetlania pliku. dla niektórych cech produktu.
ffmpeg [GeneralOptions] [InputFileOptions] -i input [OutputFileOptions] output
ffmpeg -i glocken.mp4
Oprócz wymaganych informacji zostanie również wyświetlony komunikat o błędzie. jak widać w przykładzie poniżej. To dlatego, że z technicznego punktu widzenia jest to błąd wykorzystanie FFmpeg. Używamy go, ponieważ pokazuje on informacje, na których nam zależy.
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'glocken.mp4':
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2avc1mp41
encoder : Lavf58.17.100
Duration: 00:01:47.53, start: 0.000000, bitrate: 10715 kb/s
Stream #0:0(eng): Video: h264 (High) (avc1 / 0x31637661), yuvj420p(pc), 1920x1080, 10579 kb/s, 29.97 fps, 29.97 tbr, 30k tbn, 59.94 tbc (default)
Metadata:
handler_name : VideoHandler
Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 128 kb/s (default)
Metadata:
handler_name : SoundHandler
At least one output file must be specified
Instalowanie aplikacji przy użyciu Dockera
Jeśli zamierzasz postępować zgodnie z tymi instrukcjami i wypróbować nasze polecenia, możesz zainstalować ręcznie wymagane narzędzia lub wybrać prostą ścieżkę i skorzystać z Dockera. Zalecamy użycie Dockera, ponieważ pozwoli Ci to zaoszczędzić dużo czasu. Oprócz tego wprowadziliśmy .
Zacznij od utworzenia na komputerze nowego katalogu o nazwie
media-tools
. możesz użyć dowolnej nazwy. Pamiętaj jednak, że poniższe instrukcje zakładamy, że używasz nazwymedia-tools
jako nazwy katalogu.Utwórz katalog
docker
imedia
w katalogumedia-tools
. Dzięki temu katalogmedia
nie będzie się znajdował w kontekście kompilacji. To ważne ponieważmedia
to miejsce, w którym przechowywane są pliki, na których planujemy wykonać operacje, niektóre mogą być dość duże. WstawianieDockerfile
bezpośrednio Odbudowanie komponentumedia-tools
spowoduje spowolnienie procesu tworzenia obrazu drogową, np. aby zmienić zainstalowane wersje.Utwórz
/media-tools/docker/Dockerfile
i dodaj te instrukcje kompilacji:FROM google/shaka-packager:release-v2.4.3 as packager FROM jrottenberg/ffmpeg:4.3.2-alpine38 COPY --from=packager /usr/bin /usr/bin ENTRYPOINT ["sh"]
Utwórz obraz:
docker build -t media-tools ./docker
uruchomić obraz jako interaktywną powłokę, W systemie Linux:
docker run -w /media -v ${PWD}/media:/media -it --rm media-tools /media #
W systemie Windows:
docker run -w /media -v %cd%/media:/media -it --rm media-tools /media #
Po uruchomieniu obrazu możesz sprawdzić wersje programu FFmpeg i Shaka Packager
aby sprawdzić, czy wszystko się udało, uruchamiając polecenie ffmpeg -version
i
packager --version
Dane wyjściowe powinny wyglądać tak:
/media # ffmpeg -version
ffmpeg version 4.3.2 Copyright (c) 2000-2021 the FFmpeg developers
built with gcc 6.4.0 (Alpine 6.4.0)
configuration: --disable-debug --disable-doc --disable-ffplay --enable-shared --enable-avresample --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-gpl --enable-libass --enable-fontconfig --enable-libfreetype --enable-libvidstab --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libxcb --enable-libx265 --enable-libxvid --enable-libx264 --enable-nonfree --enable-openssl --enable-libfdk_aac --enable-postproc --enable-small --enable-version3 --enable-libbluray --enable-libzmq --extra-libs=-ldl --prefix=/opt/ffmpeg --enable-libopenjpeg --enable-libkvazaar --enable-libaom --extra-libs=-lpthread --enable-libsrt --enable-libaribb24 --extra-cflags=-I/opt/ffmpeg/include --extra-ldflags=-L/opt/ffmpeg/lib
libavutil 56. 51.100 / 56. 51.100
libavcodec 58. 91.100 / 58. 91.100
libavformat 58. 45.100 / 58. 45.100
libavdevice 58. 10.100 / 58. 10.100
libavfilter 7. 85.100 / 7. 85.100
libavresample 4. 0. 0 / 4. 0. 0
libswscale 5. 7.100 / 5. 7.100
libswresample 3. 7.100 / 3. 7.100
libpostproc 55. 7.100 / 55. 7.100
/media # packager --version
packager version v2.4.3-dd9870075f-release
Skoro już wiesz, jak używać Shaka Packager i FFmpeg, możesz kontynuować zapoznaj się z podstawowymi pojęciami z sekcji Podstawy strumieniowania multimediów.