web-dev-qa-db-ja.com

FFMpegを使用してオーディオストリームを条件付きでエンコードまたはコピーする

私は、いくつかがaacオーディオを持ち、いくつかがwav、raw PCM、または他の同様のフォーマットを持っているビデオファイルのセットをバッチ変換しようとしています。

私は次の方法を探しています:

  • すでにaacである場合は、オーディオストリームをコピーします(-c:a copy
  • まだaacでない場合は、オーディオストリームをaacに再エンコードします(-c:a aac -b:a 160k

私の現在のアプローチは、どのファイルにaacオーディオストリームがないかを手動で識別し、それらを個別に変換することですが、すべてのファイルを一緒に変換するとよいでしょう。

次のようなオーディオの条件文をFFMpegコマンドに挿入する方法はありますか?

for f in *.mkv; do
    ffmpeg -i "$f" -c:v libx264 -c:a [some magic here] "${f%.*}_new.mkv"
done
2
Ananda Mahto

入力が特定の形式でない場合、コピーをエンコードまたはストリーミングするための条件ステートメントはffmpegにありません。ただし、ffprobeを使用してオーディオ形式を決定してから、ffmpegを使用してオーディオをエンコードまたはストリームコピーすることができます。

これを行う方法を示す簡単なスクリプトを次に示します。コピーして保存し、chmod +x yourscriptnameで実行権限を付与してから、./yourscriptname input.fooで実行します。

#!/bin/bash

audioformat=$(ffprobe -loglevel error -select_streams a:0 -show_entries stream=codec_name -of default=nw=1:nk=1 "$1")

if [ "$audioformat" = "aac" ]; then
  ffmpeg -i "$1" -c:v libx264 -c:a copy "${1%.*}_new.mkv"
else
  ffmpeg -i "$1" -c:v libx264 -c:a aac "${1%.*}_new.mkv"
fi

ニーズに合わせてこれを簡単に変更できます。

5
llogan

これは驚くほど微妙な問題です。すべてのコーナーケースを解決するのにかなりの時間がかかり、多くのパスが必要でした。私は自分のソリューションをオンラインにしました ここ

私の特定の使用例は、macOSを使用してiPad Air2で再生するための*.mp4ファイルを作成することですが、使用されているツールはすべてLinuxで一般的に利用可能であり、ソリューションは他のデバイスタイプに容易に適合します。

プロジェクトのホームページから、その適応を行うことに関する私のメモのいくつかを次に示します。

このプロジェクトは、 ffmpegffprobemediainfo を駆動する3つのBashシェルスクリプトで構成されています。 =、および atomicparsley これらのプログラムでサポートされている任意のタイプのファイルを、iPad Air2クラスのデバイスでの再生に適したH.264 * .mp4ファイルに変換します。

スクリプトにはいくつかの macOS ismsが含まれているため、Linuxで使用する場合、またはWindowsで Cygwin[〜#〜 ] msys [〜#〜] 、または [〜#〜] wsl [〜#〜]

  1. rmtrash プログラムは、ファイルがユーザーのごみ箱フォルダに移動さ​​れることを除いて、 rm のように動作します。他のシステムにも同様のツールが多数存在します。または、ipad-h264のこの行をrm呼び出しまたは他の「邪魔にならない」タイプのコマンドに置き換えることができます。

  2. open 呼び出しは、関連付けられたGUIプログラムを使用してファイルを開くためのmacOSメカニズムです。 Subler に関連付けられた*.mp4ファイルがあります remuxing または transcoding の後の次のステップはタグを確認し、カバーを適用することですアートなど。Cygwinでは、 cygstart でも同じ効果が得られます。 Linuxでも同様の効果を得る方法があると思います。または、openコマンドの代わりに次のステップをハードコーディングすることもできます。

ホームページの[ダウンロード]セクションにあるリンクを使用して、リポジトリからソフトウェアをダウンロードできます。

2
Warren Young