Skip to content
/ fdkaac Public
forked from nu774/fdkaac

command line encoder frontend for libfdk-aac

License

Notifications You must be signed in to change notification settings

pneuman/fdkaac

 
 

Repository files navigation

==========================================================================
fdkaac - command line frontend encoder for libfdk-aac
==========================================================================

Prerequisites
-------------
You need libfdk-aac.
On Posix environment, you will also need GNU gettext (for iconv.m4) and
GNU autoconf/automake.

How to build on Posix environment
---------------------------------
First, you need to build libfdk-aac and install on your system.
Once you have done it, the following will do the task.
(MinGW build can be done the same way, and doesn't require gettext/iconv)

$ autoreconf -i
$ ./configure && make && make install

How to build on MSVC
--------------------
First you have to extract libfdk-aac source here, so that directory tree will
look like the following:
+- fdk-aac ---+-documentation
|             +-libAACdec
|             +-libAACenc
|             :
+- m4
+- missings
+- MSVC
+- src

MSVC solution for Visual Studio 2010 is under MSVC directory.

Tagging Options
---------------
Generic tagging options like --tag, --tag-from-file, --long-tag allows you
to set arbitrary tags.
Available tags and their fcc (four char code) for --tag and --tag-from-file
can be found at http://code.google.com/p/mp4v2/wiki/iTunesMetadata

For tags such as Artist where first char of fcc is copyright sign,
you can skip first char and just say like --tag="ART:Foo Bar" or
--tag-from-file=lyr:/path/to/your/lyrics.txt

Currently, --tag-from-file just stores file contents into m4a without any
character encoding / line terminater conversion.
Therefore, only use UTF-8 (without BOM) when setting text tags by this option.

On the other hand, --tag / --long-tag (and other command line arguments) are
converted from locale character encoding to UTF-8 on Posix environment.
On Windows, command line arguments are always treated as Unicode.

Tagging using JSON
------------------
With --tag-from-json, fdkaac can read JSON file and set tags from it.
By default, tags are assumed to be in the root object(dictionary) like this:

{
  "title": "No Expectations",
  "artist": "The Rolling Stones",
  "album": "Beggars Banquet",
  "track": 2
}

In this case, you can simply specify the filename like:
--tag-from-json=/path/to/json

If the object containing tags is placed somewhere else, you can optionally
specify the path of the object with dotted notation.

{
  "format" : {
    "filename" : "Middle Curse.flac",
    "nb_streams" : 1,
    "format_name" : "flac",
    "format_long_name" : "raw FLAC",
    "start_time" : "N/A",
    "duration" : "216.146667",
    "size" : "11851007.000000",
    "bit_rate" : "438628.000000",
    "tags" : {
      "ALBUM" : "Scary World Theory",
      "ARTIST" : "Lali Puna",
      "DATE" : "2001",
      "DISCID" : "9208CC0A",
      "TITLE" : "Middle Curse",
      "TRACKTOTAL" : "10",
      "track" : "2"
    }
  }
}

In this example, tags are placed under the object "format.tags".
("format" is a child of the root, and "tags" is a child of the "format").
In this case, you can say:
--tag-from-json=/path/to/json?format.tags

For your information, ffprobe of ffmpeg project (or avprobe of libav) can
output media information/metadata in json format like this.

Note that not all tags can be read/written this way.

About

command line encoder frontend for libfdk-aac

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C 95.6%
  • C++ 2.4%
  • M4 1.6%
  • Makefile 0.4%