web-dev-qa-db-ja.com

セミコロンを使用するエントリ名を持つffprobeshow_entries

私はいくつかの基本的な情報を得るためにビデオファイルを精査しています。たとえば、次の例では、show_entriesフラグを使用して必要なデータを指定しています。

> ffprobe -v error -show_entries format=size,duration:stream=codec_name,bit_rate video.mp4

TAG:rotateエントリも取得する必要がありますが、セミコロンがshow_entriesフラグの構文と混在しているため、これは機能しません。

> ffprobe -v error -show_entries format=size,duration:stream=codec_name,bit_rate,TAG:rotate output.mp4
No match for section 'rotate'
Failed to set value 'format=size,duration:stream=codec_name,bit_rate,TAG:rotate' for option 'show_entries': Invalid argument

構文を修正する方法はありますか?他の唯一の解決策は、個々のエントリを指定せず、すべてのデータを取得することです。

5
Benjamin

ストリームに保存されているメタデータタグにはstream_tagsを使用できます。

$ ffprobe -v error -show_entries \
  stream_tags=rotate: \
  format=size,duration: \
  stream=codec_name,bit_rate \ 
  -of default=noprint_wrappers=1 input.mp4

  codec_name=h264
  bit_rate=39761
  TAG:rotate=90
  duration=5.000000
  size=27114
  • さらに、コンテナに格納されているメタデータタグにはformat_tagsがあります。

  • セクションのヘッダーとフッターを省略するために-of default=noprint_wrappers=1を追加しました。

7
llogan