Medya ile çalışmak genellikle medya dosyalarının özelliklerini değiştirmeyi gerektirir. bit hızı veya çözünürlük gibi şekilde ayarlayabilirsiniz. Başlamak için kolay bir yöntem bulmak, göz korkutucu olabilir. Bu sayfada, kullanılan araçlar ve bunların nasıl hızlı bir şekilde yükleyebilirsiniz.
İlk olarak, en yaygın iki komut satırı medya yardımcı programının temel kullanımını açıklayacağız: Shaka Packager ve FFmpeg ile birlikte araçları hızlı bir şekilde yüklemenize yardımcı oluruz. Neden iki başvuru yapılmalı? Her ikisi de kendi başına güçlü ve faydalı olsa da da web için medya hazırlamak üzere gereken her şeye sahip değil. Ayrıca Medya dönüşümü ve Medya şifrelemesi Bu iki uygulamada daha pek çok yaygın işlemi gösteren sayfalar.
Bu uygulamalar, dosya manipülasyon görevleri için kullanılabilen tek seçenek değildir; ama en yaygın ve güçlü ikisidir. Diğer seçenekler GUI'yi içerir Miro, HandBrake ve VLC uygulamaları. Ayrıca kodlama/kod dönüştürme de Zencoder, Amazon Elastic Encoder ve Google Transcoder API gibi hizmetler.
Shaka Paketleyici
Shaka Packager, ücretsiz bir medya paketleme SDK'sıdır. Medya oynatıcı kullanıyorduysanız dosyaları hazırlamak için kullanacağınız araç Shaka Packager'dır. Google en yaygın iki video akışı protokolü için dönüştürmeyi destekler: Dinamik HTTP (DASH) veya HTTP Canlı Yayın (HLS) üzerinden Uyarlanabilir Akış. Shaka Dili Paketleyici, temel güvenlik özelliklerini destekler: ortak şifreleme ve Widevine dijital hak yönetimi (DRM) ile uyumlu değildir. Ayrıca canlı yayın ve seç-izle video yayınları için de kullanılabilir.
Pakette ne yazdığına rağmen bu yardımcı program C++ birlikte çalışır. Bunu hem medya yazılımı oluşturmak için kitaplık hem de web'de oynatma için medya dosyalarını hazırlamak üzere kullanılan bir komut satırı yardımcı programıdır. Bu bu kapasitenin farkına vardık. Hatta web medyası üretenler için Shaka Packager, ve pahalı ticari uygulamalar.
Shaka Packager komutu için temel kalıbı aşağıda görebilirsiniz:
packager stream_descriptor [stream_descriptor-2 [stream_descriptor-n]] [flags]
packager -help
yazdığınızda alacağınız yanıt tam değildir. Bu örnek
daha kolay akıllaştırır; bu da, Görüntülü Reklam Ağı'ndaki
Shaka Packager belgeleri. Birden fazla stream_descriptor
olduğuna dikkat edin
öğeleri de ekler. Bunu göstermesek de videoyu değiştirebilirsiniz.
ve ses akışlarını tek komutla ayrı ayrı kontrol edebilirsiniz.
Bu temel kalıbı, dosya özelliklerini gösteren basit bir kullanımla karşılaştırın. Bu örnekte, eşdeğer bölümleri sıraladık.
packager stream_descriptor [stream_descriptor-n] [flags]
packager input=glocken.mp4 --dump_stream_info
Komut şu şekilde çıktı verir:
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
Medya dosyasıyla ilgili temel bilgiler bölümünde açıklanan özellikleri arayın. birkaç şeye dikkat edin. Yükseklik ve genişlik Full HD için doğru ve ses ve video codec'leri, kapsayıcı türleri için tercih edilen codec'ler arasındadır. Ses için AAC ve video için H264. Akışların aynı zamanda numaraları'na dokunun. Bunlar, ses ve videoyu değiştiren işlemler için yararlıdır. ayrı olarak düzenleyebilirsiniz.
Yukarıdaki çıkışta bit hızının gösterilmediğine dikkat edin. Eksiklik olsa da Bu çıkışın okunması daha kolay; bu nedenle mümkün oldukça onu kullanıyoruz. İhtiyacımız olduğunda bit hızı gibi Shaka Packager'ın alamadığı bilgiler için FFmpeg kullanırız.
FFmpeg
FFmpeg, ayrıca kaydetme, dönüştürme ve akış işlemleri için ücretsiz bir uygulamadır. medya dosyaları olabilir. Özellikleri, Shaka Packager'ınkinden daha iyi veya daha kötü değil. Sadece birbirinden farklıdırlar.
Bir FFmpeg komutunun temel kalıbı şu şekildedir:
ffmpeg [GeneralOptions] [InputFileOptions] -i input [OutputFileOptions] output
Shaka Packager gibi bu uygulama da birden fazla akışı işleyebilir. Bazı seçenekleri birden çok konumda kullanılır ve dosya çıkışını farklı şekilde manipüle eder. farklı olabilir. Bu nedenle, Stack Overflow hakkındaki FFmpeg sorularını ve benzer sitelerdeki FFmpeg sorularını inceleyin.
Temel modeli tekrar dosya görüntüleme örneğiyle karşılaştıracağız. özellikler.
ffmpeg [GeneralOptions] [InputFileOptions] -i input [OutputFileOptions] output
ffmpeg -i glocken.mp4
Bu işlem, istediğimiz bilgilere ek olarak bir hata mesajı da aşağıdaki örnekte gösterildiği gibidir. Çünkü bunun teknik olarak yanlış bir tarih nasıl kullanacağınızı göstereceğiz. Bunu, önemsediğimiz bilgileri görüntülediği için kullanırız.
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
Docker ile uygulama yükleme
İzlemeyi ve komutlarımızı denemeyi planlıyorsanız veya kolay yolu izleyip Docker'ı kullanın. Önerilerimiz zamandan tasarruf edeceğinden emin olun. Bütün bunların yanı sıra, size hızlıca kurulum için gereken talimatları iletti.
Bilgisayarınızda bir yerde
media-tools
adlı yeni bir dizin oluşturarak başlayın; istediğiniz adı kullanabilirsiniz. Ancak aşağıdaki talimatlarımedia-tools
adresini dizin adı olarak kullandığınızı varsayalım.media-tools
içinde birdocker
vemedia
dizini oluşturun. Bu işlem,media
dizininizi derleme bağlamının dışında tutar. Bu önemli çünkümedia
, üzerinde işlem yapmayı planladığımız dosyaların depolandığı yerdir ve bazıları oldukça büyük olabilir.Dockerfile
öğesini doğrudan Yeniden derlersenizmedia-tools
, görüntünün oluşturulmasını yavaşlatabilir muhtemelen yüklü sürümleri değiştirmeniz gerekebilir./media-tools/docker/Dockerfile
etiketini oluşturun ve aşağıdaki derleme talimatlarını ekleyin: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"]
Görüntüyü oluşturun:
docker build -t media-tools ./docker
Görüntüyü etkileşimli kabuk olarak çalıştırın. Linux'ta:
docker run -w /media -v ${PWD}/media:/media -it --rm media-tools /media #
Windows'da:
docker run -w /media -v %cd%/media:/media -it --rm media-tools /media #
Görüntüyü çalıştırırken hem FFmpeg hem de Shaka Packager sürümlerini kontrol edebilirsiniz
kontrol etmek için ffmpeg -version
ve
packager --version
. Çıkış şu şekilde görünmelidir:
/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
Shaka Packager ve FFmpeg'i kullanmayı denediğinize göre devam edebilirsiniz. temel kavramları öğrenmeye, bir sonraki Medya akışıyla ilgili temel bilgilere göz atacağız.