MPEG, ffmpeg, libavcodecのお勉強 その1

ffmpegやコーデックまわりについて教えて頂いたメモ。TLの皆様の優しさに涙が...ありがとうございます><
4
mhidaka@技術書典さ13 @mhidaka

@gabu libavformatのほうかしら。grepしかしてないけど。

2011-09-24 00:12:53
がぶちゃん @gabu

殴り返されそうなライブラリです... RT @youten_redo: がぶちゃんはついにffmpegを殴るのか…

2011-09-24 00:13:49
@3rddoor

@gabu libavcodec のサンプルが mpeg1 ならコンテナの概念が要らないとか?

2011-09-24 00:15:15
がぶちゃん @gabu

.@3rddoor そういえば最終フレームを書き出したあとに謎の数値を書き出してたから、それがコンテナのおまじないかも。

2011-09-24 00:17:51
mhidaka@技術書典さ13 @mhidaka

コンテナってAVIとかは簡単なんだけどMPEG2-TSとかMP4とかコーデック同様にそれなりにそれなり。

2011-09-24 00:20:40
tama #ハタチ @tamacjp

@gabu 再生なら ffplay.c が付いてませんでしたっけ?(SDLが必要だけど…

2011-09-24 00:22:49
がぶちゃん @gabu

@tama_eguchi 最終的には再生ではなくエンコードがしたいのです。

2011-09-24 00:24:13
tama #ハタチ @tamacjp

@gabu エンコードは ffmpeg.c を参考にしました。ぽつぽつマズいところあったけど、特定の用途だったので「非サポート!」で逃げながら^^; < Windows Androidですか?

2011-09-24 00:25:25
@MiddleforkAlt

@gabu すでにお使いかもしれませんが、MPC-HCのソースも参考になると思います。DirectShowベースですけど。

2011-09-24 00:28:21
がぶちゃん @gabu

@tama_eguchi やっぱりffmpeg.cを追うのが王道ですよねー。ほむほむ。対象プラットフォームは言わずもがなということで(´ー`)

2011-09-24 00:29:17
tama #ハタチ @tamacjp

@gabu 前に @awaku7 さんが「ffmpegをAndroidにポートしたどー!」て言ってたような。

2011-09-24 00:30:25
がぶちゃん @gabu

まじっすか! RT @tama_eguchi: @gabu 前に @awaku7 さんが「ffmpegをAndroidにポートしたどー!」て言ってたような。

2011-09-24 00:31:28
tama #ハタチ @tamacjp

@gabu @awaku7 明日にはこのツイート見て反応してくださると期待(^^ゞ

2011-09-24 00:34:25
@MiddleforkAlt

@gabu 今、手元にPC環境がないので調べられませんが、SourceForgeにリポジトリがあったはずです。これ以上はお役にたてないかもすいません。

2011-09-24 00:37:47
l.b. @l_b__

@gabu @tama_eguchi @awaku7 試したのはだいぶ前ですが、 http://t.co/VYa5FkR1 は動きました。

2011-09-24 00:38:59
山崎(写真を愛する花粉症👀) @letkun

@gabu ffmpegの流れはコンテナパース→CODECでデコード→1フレームの生画像取り出しの繰り返しのはず・・です。Mpeg4/H264 baseline に限るのであれば、そのコンテナとCODEのソースだけをひっぱってきて繋ぐ方が早いかもしれませんね。

2011-09-24 01:03:25
栗林和之 @kuribayashi9

@gabu libavcodecですか? どこかでみたコードですね。ffmpegのコードかな? これなら、10年前、液晶大型テレビの動画再生プログラムを実装するときに、 コードをいじくりまわした思い出があります。 「FFmpegで作る動画共有サイト 」の本が参考になるかも。

2011-09-24 01:34:23
@3rddoor

@gabu ありがとですーいまぐぐって同じのを発見したのですが git にない気がします;;

2011-09-24 02:20:57
mhidaka@技術書典さ13 @mhidaka

@gabu ちょいまえのコンテナに関する記述がないなぁ、って言ってたのはここのvideo_encode_exampleあたり?

2011-09-24 02:33:23
@3rddoor

@mhidaka @gabu ぼくはそういう理解しました

2011-09-24 02:33:57
@3rddoor

@mhidaka @gabu 最初のほうのコメントに codec しか扱ってなくて format は libavformat をみろ、というコメントありますね

2011-09-24 02:35:25
mhidaka@技術書典さ13 @mhidaka

video_decode_exampleとvideo_encode_exampleがあって、エンコード側のサンプルはフレームをwriteしてるだけでコンテナとしては最も単純なエンコード順にフレーム情報が並ぶタイプ。デコード側はちょっとややこしてく380行目嫁ってなってる。

2011-09-24 02:36:26