世界を動かす技術を、日本語で。

FFmpegアセンブリ言語レッスン

2025年8月18日原文(github.com)

概要

  • FFmpeg School of Assembly Language の紹介
  • 必要な前提知識と学習内容の概要
  • レッスン構成と今後の課題の説明
  • Discordサーバー でのサポート案内
  • 利用可能な翻訳情報の案内

FFmpeg School of Assembly Language 概要

  • FFmpeg School of Assembly Language は、アセンブリ言語の基礎を学ぶための教材
  • FFmpeg 内でのアセンブリ言語の書き方を中心に解説
  • コンピュータ内部の仕組みを理解するための実践的な知識の習得
  • C言語(特にポインタ) の知識が必須
  • 高校数学(スカラーとベクトル、加算・乗算など)の基礎知識が推奨

レッスンと課題

  • 各レッスンごとに対応した 課題 (今後追加予定)を用意
  • レッスン終了時には FFmpeg へのコントリビュートが可能なレベルを目指す
  • 学習進捗に応じて 実践的なスキル の習得

サポートとコミュニティ

  • 質問や疑問点への対応として Discordサーバー を用意
    • サーバーURL: https://discord.com/invite/Ks5MhUhqfB
  • 学習者同士の交流や情報共有の場

翻訳と多言語対応

  • フランス語スペイン語 の翻訳版READMEを提供
  • 多様な言語環境に対応した学習サポート

Hackerたちの意見

FFMPEGがどれだけの規模で動いてるのか、想像もつかないよ。ちょっとした改善でも、何千時間もの計算時間が節約されるんだろうね。めちゃくちゃ役立つプロジェクトだ。

パフォーマンスへのこだわりは素晴らしいことだね。もしすべてのプロジェクトが同じようにこだわってたら、想像してみてよ。

でも、ちゃんとしたAPI(従来の意味で、SaaSじゃなくて)を持ってたらいいな。自分でプログラミング言語みたいなコマンドラインを理解しなくちゃいけないのはちょっと面倒だよね…。

前の議論 2025-02-22、コメント数222: https://news.ycombinator.com/item?id=43140614

nasmのマクロプリプロセッサがひどく使われてるね。別のアセンブラに移行するのは大変そうだ。

どこに?あのレッスンにはほとんどコードがないじゃん。

なんで移行するの?

思ってたよりも面白い。特化したチュートリアルは本当に良いね。

どうやってこれらのアセンブリ命令を異なるCPU間でポータブルにしてるんだろう?

そうだね、x86-64だけだよ。

一般的なCのフォールバックがあると思うけど、それがベースラインにもなるね。でも、大きな(ターゲットの)アーキテクチャには、アーキテクチャごとに手書きのアセンブリバージョンがあるよ。

最適でないコンパイラ生成のアセンブリによって引き起こされるホットスポットを特定する実際のプロセスってどうなってるの?アーキテクチャ特有のアセンブリの代わりに、手書きのコンパイラ中間表現(LLVM IR)を書く意味ってあるのかな?

Hacker Newsで議論の続きを見る