メディアを操作するには、多くの場合、メディア ファイルの特性を変更する必要があります。 たとえばビットレートや解像度などです簡単に使い始められる方法を見つけると、 とても厄介ですこのページでは、Google Cloud で使用するツールと 簡単にインストールできます。
まず、2 つの一般的なコマンドライン メディア ユーティリティの基本的な使用方法を説明します。 Shaka Packager と FFmpeg を使用して、ツールを迅速にインストールできます。 2 つのアプリケーションをカバーする理由どちらも強力で便利ですが ウェブ用のメディアを準備するために必要なものもすべて揃っていません。また、 メディア変換とメディア暗号化 これらの 2 つのアプリケーションでの一般的なオペレーションを多数紹介しています。
ファイル操作タスクに使用できるオプションは これらのアプリケーションだけではありません 最も一般的で強力な方法です。その他のオプションには Miro、HandBrake、VLC などのアプリケーションを開発しました。エンコードやコード変換もあります。 サービス(Zencoder、Amazon Elastic Encoder、Google Transcoder API など)で利用できます。
Shaka Packager
Shaka Packager は、無料のメディア パッケージ SDK です。メディア プレーヤーを使っていた場合 Shaka Packager を使用してファイルを準備します。これは、 は、最も一般的な 2 つの動画ストリーミング プロトコルの変換をサポートしています。 HTTP(DASH)または HTTP Live Streaming(HLS)を介したアダプティブ ストリーミング。シャカ Packager は主要なセキュリティ機能(一般的な暗号化、Widevine Digital)をサポート 。また、ライブ ストリーミングとビデオ オンデマンドにも対応しています。
パッケージに記載されている内容にもかかわらず、このユーティリティは C++ 開発できます。メディア ソフトウェアを作成するためのライブラリとしてだけでなく、 ウェブ再生用のメディア ファイルを準備するためのコマンドライン ユーティリティ。こちらの 後者の方が有用です実際 ウェブメディアクリエイターにとって Shaka Packager を使用すると、一部のタスクに費用をかけずに 高価な商用アプリケーションには 最適です
Shaka Packager コマンドの基本的なパターンは次のとおりです。
packager stream_descriptor [stream_descriptor-2 [stream_descriptor-n]] [flags]
「packager -help
」と入力しても、このような結果は期待できません。この例は、
例が反映されています。これは、
Shaka Packager のドキュメントstream_descriptor
は複数あります。
パターンに含まれるアイテムです。ここには示していませんが、ユーザーが動画を操作することは可能です
音声ストリームを 1 つのコマンドで
個別に表示できます
この基本的なパターンを、ファイルの特徴を示す簡単な使用方法と比較してみましょう。 この例では、同等の部分を並べています。
packager stream_descriptor [stream_descriptor-n] [flags]
packager input=glocken.mp4 --dump_stream_info
このコマンドの出力内容は次のとおりです。
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
メディア ファイルの基本で説明されている特性を探します。 いくつか注目しましょう高さと幅はフル HD で正しく設定されており、 特に推奨のコーデックは、オーディオ コーデックと動画コーデックです。 音声には AAC、動画には H264 です。また、ストリームはラベル付きで識別され、 あります。これらは音声と動画を操作する操作に便利です。 個別に選択できます。
上記の出力にはビットレートが表示されていません。何か足りないものがあっても この出力は読みやすいので、できる限り使用します。必要なとき Shaka Packager が取得できない情報(ビットレートなど)には FFmpeg を使用します。
FFmpeg
FFmpeg は、録画、変換、ストリーミング用の無料アプリケーションでも提供されます。 作成します。その能力は、Shaka Packager の能力よりも劣ります。 違うだけです。
FFmpeg コマンドの基本的なパターンは次のようになります。
ffmpeg [GeneralOptions] [InputFileOptions] -i input [OutputFileOptions] output
Shaka Packager と同様に、このアプリケーションは複数のストリームを処理できます。その一部 オプションが複数の場所で使用されており、ファイル出力の扱い方が異なる コマンドの場所によりますこの点に注意して Stack Overflow の FFmpeg 質問、および同様のサイトをご覧ください。
ここでも、基本的なパターンと、ファイルを表示するための例を比較します。 説明します。
ffmpeg [GeneralOptions] [InputFileOptions] -i input [OutputFileOptions] output
ffmpeg -i glocken.mp4
リクエストした情報に加えて、エラー メッセージも表示される 必要があります。なぜなら、これは技術的には正しくないからです。 使用しています。私たちにとって重要な情報を表示するため、これを使用しています。
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 を使用したアプリケーションのインストール
引き続きコマンドを試してみる場合は、 必要なツールを手動で取得することも、Docker を使用して簡単な方法で取得することもできます。新しい P-MAX キャンペーンを 時間を大幅に節約できますそれに加え では、簡単な設定で手順を簡単に設定できます。
まず、パソコンに
media-tools
という名前の新しいディレクトリを作成します。 名前は自由に指定できますが、以下の説明では ディレクトリ名としてmedia-tools
を使用していると仮定します。media-tools
内にdocker
ディレクトリとmedia
ディレクトリを作成します。 これにより、media
ディレクトリがビルド コンテキストに含まれなくなります。大事なことだぞ。media
は操作を実行する予定のファイルが保存される場所であるため、 非常に大きくなることがあります。Dockerfile
を直接挿入する イメージを再ビルドすると、media-tools
によってイメージのビルドが遅くなります。 インストールされているバージョンを変更するなど、/media-tools/docker/Dockerfile
を作成し、次のビルド手順を追加します。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"]
イメージをビルドします。
docker build -t media-tools ./docker
イメージをインタラクティブ シェルとして実行します。Linux の場合:
docker run -w /media -v ${PWD}/media:/media -it --rm media-tools /media #
Windows の場合:
docker run -w /media -v %cd%/media:/media -it --rm media-tools /media #
イメージの実行中に、FFmpeg と Shaka Packager のバージョンを確認できます。
ffmpeg -version
を実行して、すべてが正常に完了したことを検証します。
packager --version
。出力は次のようになります。
/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 と FFmpeg の使用を試したら、次の手順に進んでください。 次のメディア ストリーミングの基本では、基本的なコンセプトを学べます。