(Nov. 11, 2010 : Note) x264_L-SMASH is now under massive reconstruction. Therefore it is highly unrecommended to use this repository. After that reconstruction, x264_L-SMASH will be based on plain x264, not x264-audio. Thus, it will have L-SMASH's importer's copying feature only if at most, and x264-audio's audio encoding feature will be removed anyway.
x264_L-SMASH unofficial repository
Surely L-SMASH has its official repository already, but we made Unofficial repository too. Because L-SMASH is preparing for audio muxing as well as sane mp4 muxing and it's very relating to x264-audio(repository), so that we have to manage files required for integration with it, especially "mp4.c".
They call this x264_L-SMASH.
For users try to use this
Although this is also useful for users who want to easily get L-SMASH integrated x264, I don't recommend to use this repository. Because it's mainly for developers and possibly always unstable.
L-SMASH's developers and contributors / collaborators are trying to keep this repository up to date everyday with official x264's repository and x264-audio's repository. Feedbacks / bug reports are welcomed as they improve our development.
x264_L-SMASH has some features which is not unlikely to be gotten in x264's mainstream, even when x264-audio and L-SMASH's main features get merged with x264's mainstream. Such as,
- L-SMASH's importer as an audio input filter.
- Some a bit problematic audio encoder(s).
- Command line options for mp4 muxer, which is:
- For chapters and language flags for tracks.
- To keep compatibility with some stupid un-compliant devices.
Please note, that:
- This is mainly for developers and not for users to begin with.
- Not all commits are fully reviewed.
- There's basically no testing for updates (possibly broken even for build).
- People other than L-SMASH's official committer can push into this repository.
- Histories of commits are not maintained. Any official commits may be merged as one, bunch commit. You have to look into official repositories to know what was changed.
- Along with development status, it may be removed suddenly.
- Especially, if Kovensky's x264-audio repository gets into x264's mainstream, or is determined to be dispose, it's very likely to be removed. Because main purpose of this repository is to maintain the mp4.c which is very mashed up with audio stuff.
This unofficial repository is much or less complicated. We recommend you to create (clone) your local repository by using following script.
x264_L-SMASH_clone.sh 2.96kiB (8040)
If you clone by simply using the address shown on github, unexpected behaviors may occur with your x264 built, such as printing bad revision etc.
NOTE: If you would like to re-use your local repository for updates, do not forget to do "git pull" in two branches. First you have to wait that the remote repo of x264_L-SMASH gets updated by developers or collaborators, and then type like this.
git checkout plain git pull git checkout lsmash git pull
There are other branches such as "kaudio" and "laudio". Of course you can pull them too. It should be preferable, but not mandatory for simple building of x264_L-SMASH.
Nothing special for normal building.
Note that if you don't include lavf / lavc in appropriate way, the features of audio muxing will be very limited.
x264_L-SMASH supports non-free codecs. If you build with these codecs, you can't redistribute the binary. These features are actually originated in x264-audio, and what x264_L-SMASH does is just inherit them.
If you want qtaac support with AAC encoding on win32, first you have to have QuickTime SDK for building, and running environment have to be QuickTime installed. Command line for configure script will be like this.
./configure --enable-nonfree --qtsdk=QTSDKROOT
Where QTSDKROOT is path to QuickTime SDK's root directory. Note that QuickTime SDK is unavailable on platforms other than win32.
If you want libfaac support with AAC encoding, you have to give an additional option to configure script.
Of cource, you have to have libfaac in your include path and library path.
Using 3gpp's reference encoder for AMR-WB encoding is completely unsupported. You have to do everything with it by yourself. We'd never mention to it.
Instructions on other site
Some supporters made detailed building instructions there in Japanese.
- Ch's barn: x264_L-SMASHのビルド
- wipple's room : (Unofficial) How to build x264_L-SMASH (Windows & MacOSX)
Here are some sample command lines.
mp4 output with pre-encoded mp3 muxing
x264 src.mp4 --audiofile x264_audio_test.mp3 --acodec copy -o out.mp4
3gp output with AMR-NB encoding
x264 src.mp4 --audiofile 8khz.wav --acodec libopencore_amrnb --abitrate 12.2 -o out.3gp
mp4 output with pre-encoded AMR-NB muxing using L-SMASH's importer
x264 src.mp4 --audiofile x264_audio_test.amrwb --ademuxer lsmash --acodec copy -o out.mp4
3g2 output with AAC encoding using qtaac
x264 src.mp4 --audiofile 48khz.wav --acodec qtaac --abitrate 128 -o out.3g2
3gp output without audio avoiding unplayable videos on some devices
x264 src.mp4 --no-container-sar -o out.3gp
avs2yuv input.avs -o lossless.y4m -o -|x264_x64 - --demuxer y4m --pass 1 --bitrate 10000 --preset placebo --tune film --level 4 --vbv-maxrate 40000 --vbv-bufsize 30000 --nal-hrd vbr --acodec none -o nul wavi input.avs -|x264_x64 lossless.y4m --pass 2 --bitrate 10000 --preset placebo --tune film --level 4 --vbv-maxrate 40000 --vbv-bufsize 30000 --nal-hrd vbr --audiofile - --acodec faac --aquality 500 -o output.mp4