5

接尾辞が付いたオーディオファイルは多数あり、これらはAACまたはApple Lossless(ALAC)のいずれか.m4aでエンコードされています。AppleLosslessでエンコードされたオーディオファイルのみを選択したい。これを判断する方法はありますか?FFmpegを試しましたが、すべてAACでエンコードされているとのことです。

編集:私は現在Windowsを使用しています。

4

5 に答える 5

4

FFmpegパッケージをお持ちの場合は、 ffprobe.

これを試してください:

ffprobe -v error -select_streams a:0 -show_entries stream=codec_name -of default=noprint_wrappers=1:nokey=1 file.m4a
  • -v error: 起動テキストを非表示にします
  • -select_streams a:0: 最初のオーディオトラックを選択します
  • -show_entries stream=codec_name: コーデック タイプのみを表示する
  • -of default=noprint_wrappers=1:nokey=1: 余分なフォーマットを削除します

これはaac、またはのみを出力しalacます。スクリプト作成に最適です。

于 2016-08-13T18:31:13.280 に答える
2

67 ページに M4A の説明が記載されているファイル (これまでに見つけた中で最高のもの) は次のとおり です。 pdf

A typical M4A begins with an 'ftyp' atom indicating its file type...
10.2.1 the ftyp atom
[0 31] ftyp Length [32 63] 'ftyp' (0x66747970)
[64 95] Major Brand [96 127] Major Brand Version
[128 159] Compatible Brand₁ ...
The 'Major Brand' and 'Compatible Brand' elds are ASCII strings. 
'Major Brand Version' is an integer.

最初は、「ftyp」がフォーマットが決定される場所になると考えましたが、このリストから判断すると、ファイルタイプ自体 (すでに m4a として知られています) に似ています: http://www.ftyps.com/index.html

http://www.ftyps.com/what.html形式についてもう少し説明します。

ftyp が区別されない場合、「主要ブランド」フィールドはこのページの fourcc を参照していると思います: http://wiki.multimedia.cx/index.php?title=QuickTime_container Apple Lossless のものは ' alac' で、AAC はおそらく 'mp4a' です。

Apple の Lossless 形式のオープン ソース ページは、ftype が「alac」であることを示しています (上記とは少し矛盾しています) http://alac.macosforge.org/trac/browser/trunk/ALACMagicCookieDescription.txt

これまでのところ、ftyp に続く 4 バイトは常に (小さいサンプル サイズで) 'M4A' であることがわかります。

最初の 200 (16 進) バイト程度のどこかに、AAC 圧縮用の ascii 'mp4a' または Apple Lossless 用の 'alac' があります。「alac」は常に 30 バイト間隔でペアになっているようです (「mp4a」は 1 回のみ)。

正確な場所または接頭辞が見つかったら、もう一度更新します。(私の推測では、ヘッダーの前半部分のサイズがどこかに指定されています。)

于 2012-09-21T21:00:12.147 に答える
1

Core Audioでそれを行うことができます。

何かのようなもの:

CFStringRef pathToFile;
CFURLRef inputFileURL = CFURLCreateWithFileSystemPath(kCFAllocatorDefault, pathToFile, kCFURLPOSIXPathStyle, false);
ExtAudioFileRef inputFile;
ExtAudioFileOpenURL(inputFileURL,  &inputFile);

AudioStreamBasicDescription fileDescription;
UInt32 propertySize = sizeof(fileDescription);

ExtAudioFileGetProperty(inputFile, 
  kExtAudioFileProperty_FileDataFormat,
  &propertySize,
  &fileDescription);    

if(fileDescription.mFormatID == kAudioFormatAppleLossless){
  // file is apple lossless
}
于 2012-06-07T16:14:09.153 に答える
1

Mac では、目的のファイルを選択して右クリックします。「情報を見る」を見つけてクリックすると、選択したファイルに関する追加情報がウィンドウにポップアップ表示されます。「Codecs:」「AAC」または「Apple Lossless」の横に表示されている必要があります。同じ質問をした Mac ユーザー (および、OS に精通していなくても、何らかの方法で Windows ユーザーがいる可能性があります) の助けになれば幸いです。

于 2013-06-26T03:40:04.833 に答える
0

http://sourceforge.net/projects/mediainfo/を使用してみてください

「MediaInfo は、ビデオとオーディオ ファイルの最も関連性の高い技術データとタグ データの便利な統合表示です。」- sourceforge プロジェクトの説明

このように情報が表示されます。

General
Complete name                    : C:\Downloads\recit24bit.m4a
Format                           : MPEG-4
Format profile                   : Apple audio with iTunes info
Codec ID                         : M4A 
File size                        : 2.62 MiB
Duration                         : 9s 9ms
Overall bit rate                 : 2 441 Kbps
Track name                       : 24 bit recital ALAC Test File
Performer                        : N\A
Comment                          : Test File

Audio
ID                               : 1
Format                           : ALAC
Codec ID                         : alac
Codec ID/Info                    : Apple Lossless Format
Duration                         : 9s 9ms
Bit rate mode                    : Variable
Bit rate                         : 2 438 Kbps
Channel(s)                       : 2 channels
Sampling rate                    : 22.7 KHz
Bit depth                        : 24 bits
Stream size                      : 2.62 MiB (100%)
Language                         : English

コーデック/エンコーディングの詳細については、オーディオ セクションを確認してください。

于 2013-10-07T09:19:37.010 に答える