Hatena::ブログ(Diary)

北海道苫小牧市出身のPGが書くブログ RSSフィード Twitter

Fork me on GitHub

2008-06-20(金)

FFmpeg APIで、さまざまな動画を操る

CodeZineさんで記事を書きました。自分のプログラムからコーデック使って動画読み書きしてみたい方はご覧下さい。

オープンソースの動画録画・変換・配信ソフトウェアとしてFFmpegが有名となりつつありますが、そのAPIに関してはあまり解説されていません。本稿ではFFmpeg APIについて説明し、自分のプログラムから様々なコーデックを使って動画を扱う方法を説明します。

FFmpeg APIで、さまざまな動画を操る - 前編

サンプルのソースコードこちら*1

これとOpenCVを組み合わせると、動画のビジョン処理ができて楽しいのかなーと思いつつ、まだそっちは試してません。

gettingsignalsgettingsignals 2011/12/15 20:18 はじめまして、gettingsignalsと申します。

ffmpegのAPIの記事分かりやすくてとても参考になりました。

Androidでffmpeg組込みの動画プレイヤーを作ろうとしています。
一点つまづいている箇所がございまして、相談・助言戴けないかとコメント致します。

やりたいことは、コマ送り/コマ戻し機能の実装です。
(Iフレーム、Pフレーム含む)

Iフレーム単位でのコマ送りはできたのですが、
Pフレームを含んだコマ送りをやろうとすると、
ブロックノイズが入った画像が表示されます。
(Pフレームなので当然といえば当然ですが)

指定したタイムスタンプのフレームがPフレームの場合、
完全(Iフレーム相当)な画像として取得するよい方法はないでしょうか?

APIがあるのか、
なければどのように実装すればよいかなどアドバイス戴ければ嬉しいです。

※コード抜粋
avformat_seek_file(pFormatCtx, -1, sp_seek_target, sp_seek_target, sp_seek_target, AVSEEK_FLAG_ANY|AVSEEK_FLAG_BACKWARD|AVSEEK_FLAG_FRAME);

while(av_read_frame(pFormatCtx, packet)>=0) {
    avcodec_decode_video2(is->video_st->codec, g_video_frame2, &frameFinished, packet);
rgb_queue_picture(is, g_video_frame2, pts, packet->pos);
video_refresh_rgb_timer(is);
}

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

トラックバック - http://d.hatena.ne.jp/hiratara/20080620/1213951906