L-SMASHL-SMASHL-SMASHこの記事はL-SMASHの暫定・準公式ページです。L-SMASHとはL-SMASHはmp4ファイルを扱うクロスプラットフォームのライブラリです。将来的にはmp4に関わる様々な用途を想定していますが、現在のところ、実際に動作する機能は以下のように限られています。muxerとして動作します。単独で、いくつかの形式の音声をmuxすることができます。最低限のm4a/3gp/3g2のmuxerとしても動作します。具体的には、以下の標準の一部を実装しています。format関連規格として、以下の標準の一部も実装しています。QuickTime仕様の一部を実装する予定があります。muxerとして主に実装されています。x264に音声符号化&多重化機能を付加することを主目的としたものではありません。mp4の実装に過ぎません。いつかは不明ですが最終的にはmp4を取り扱うための普遍的なソフトウェアになると思われます。機能x264との連携でH.264/AVCをmp4にmuxできます。AC-3をmp4にmuxできます。restrictions(主に英語)を参照してください。巷には既にいくつかのオープンなmp4/movの実装が存在するにも関わらず、L-SMASHプロジェクトは開始しました。muxerのみを想定していましたが、その後展望が広がり、現在では汎用のmp4ツールとなるべく実装が進んでいます。開発の契機は、既存のオープンソースの実装が大きく、複雑すぎること、そして規格上誤った実装が多いことから、自分たちで真っ当な実装を行おう、と思い立ったことにあります。このため、L-SMASHは以下のような基本コンセプトを持っています。一般に動画コンテナとして重要な機能のみを実装する。素直でシンプルに実装する。可能な限り規格に忠実に実装する。mp4は非常に多種多様な表現を内包することのできる、高機能なコンテナ形式です。L-SMASHでは2D/3Dグラフィックスやインタラクティブコンテンツ等をサポートしません。現状の動画コンテナとして一般に重要ではなく、実装を過度に複雑にする機能を排除し、シンプルにしています。L-SMASHのソースコードは必ずしも実行時の効率が良くはなっていません。多少効率が悪くとも、正しく、かつ規格と実際の動作の理解が容易なコードにしています。このページの位置づけL-SMASHプロジェクトは現在、専用のドメインやサーバを持っていません。L-SMASH関連の情報やリソースはAd-Hocに分散されて保持されています。このページは散らばる情報を集めるための手がかりとして作成されています。プロジェクトが大きくなれば、いずれは別途、正式なページができるでしょう。このページはそれまでの繋ぎであるため、暫定準公式ページと位置づけています。入手方法L-SMASHプロジェクトは公式にはバイナリを提供しません。Codeのgitレポジトリで管理しており、gitコマンド、またはミラー(以前の公式)であるrepo.or.czのsnapshotによって取得可能です。gitでの取得の場合、任意の作業ディレクトリ上で以下のようにして取得できます。https://code.google.com/p/l-smash/ただし、L-SMASHは現在のところ、単独では音声のmuxerとしてしか動作しません。殆どのユーザは、以下の非公式なx264_L-SMASHを使いたいことでしょう。非公式gitレポジトリ(2010/11/11追記)非公式レポジトリは現在大改造中です。このため、現在この非公式レポジトリを使用することは強く非推奨です。改造後はx264-audioをベースとせず、本家x264をベースとするようになります。これに伴い音声関連の機能は、良くてL-SMASHの持つimporterによるcopyのみか、最悪何も含まれなくなります。x264との統合をスムースに行うため、githubに非公式gitレポジトリを置いています。2010において音声のエンコードをその対象項目として挙げており、muxerがこれに深く関わるため、統合作業用に用意したレポジトリです。muxerとしてL-SMASHを使いたい方には便利かもしれません。以下のように不安定なものですのでご注意下さい。基本的に開発者の連携のために用意されたレポジトリで、ユーザの利便性のために用意したものではありません。レビュー前のcommitが含まれる可能性があります。基本的に動作確認は取れておらず、ビルドすら通らない可能性があります。L-SMASHの正式なcommitter以外の方もpush可能になっています。公式レポジトリの複数のcommitが一括してcommitされ、merge項目の内訳を含みません。開発の状況により、突然除去する可能性があります。Kovensky氏のx264-audioのレポジトリが本家x264に統合されるか、統合されないことが決定した場合は、このレポジトリの主な目的であるmp4.cの管理が不要になるため、一層、除去の可能性が高まります。このレポジトリは若干複雑に作り上げられているため、以下のスクリプトを使用してcloneすることをお勧めします。(6490)このスクリプトを使用せず、単純にgithubに表示されるアドレスを元にcloneのみした場合、ビルドしたx264のリビジョンが正しく表示されません。repository(英語)に書きました。動作環境L-SMASHは殆どがC99の範囲で作成されており、ビルド・動作共に環境依存性が低くなっています。以下の点により、コンパイルできない、または動作しない環境がある可能性があります。64bit整数(uint64_t等)の使用。64bit対応fseek/ftellの使用。64"を使用しています。MinGW向けにはfseeko64/ftello64を使用しています。具体的な動作環境として、開発者は主にMinGW上で作業を行っており、他にMacOSX(Intel)上での動作が確認されています。(2010/10/15追記):PPCでの動作も確認されましたのでバイエンディアンです。バグ報告・連絡等まだあまり充実していません。オープンにしていきたいとは考えています。maniacsに間借りしています。「コンテナ」カテゴリを使用するようにお願いします。このフォーラムは主に日本語で意思疎通のできる方向けですが、英語も不可ではありません。英語での議論のための専用の場所は用意していませんが、開発者と協力者はx264周辺、そしてdoom9やdoom10のフォーラムにいますので、連絡を取るのは難しくないでしょう。開発者・協力者の常駐するIRCチャンネルがあります。英語も日本語も可ですが、時間帯によって、誰も反応しないかもしれません。メールソースコードにメールアドレスの記載があります。返信の迅速性、確実性にはあまり期待しないで下さい。メールによる連絡は、開発レベル以上のトピックに限って下さい。一般ユーザレベルでの使用方法やビルド方法に関してはフォーラムを使用して下さい。ライセンスISCライセンスです。"JEEBと愉快な仲間たち"の協力に感謝します。Perl5.010001。