Medya uygulamasıyla ilgili temel bilgiler

Derek Herman
Derek Herman
Joe Medley
Joe Medley

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.

  1. 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.

  2. media-tools içinde bir docker ve media 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 derlerseniz media-tools, görüntünün oluşturulmasını yavaşlatabilir muhtemelen yüklü sürümleri değiştirmeniz gerekebilir.

  3. /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"]
    
  4. Görüntüyü oluşturun:

    docker build -t media-tools ./docker
    
  5. 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 #
    
ziyaret edin.

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.