C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[6]: DirectShowでwmvファイルの可変速再生


(過去ログ 54 を表示中)

[トピック内 8 記事 (1 - 8 表示)]  << 0 >>

■30259 / inTopicNo.1)  DirectShowでwmvファイルの可変速再生
  
□投稿者/ よう (6回)-(2008/12/19(Fri) 16:26:55)

分類:[.NET 全般] 

開発環境:VisualStudio 2008
開発言語:C#
DirectShowのCOMラッパー:DirectShow.Net Library(http://directshownet.sourceforge.net/

DirectShowを使って動画再生を行っていますが、wmvファイルの再生時に再生速度を変更することができません。
こうすればできるという方法がありましたら、教えてください。
DirectShowはDirectShow.Net LibraryというCOMラッパーを使ってCOMを呼び出しているだけなので、
C++の場合と同じように扱えるかと思います。

よろしくお願いいたします。
引用返信 編集キー/
■30263 / inTopicNo.2)  Re[1]: DirectShowでwmvファイルの可変速再生
□投稿者/ Hongliang (324回)-(2008/12/19(Fri) 16:59:14)
http://www.google.co.jp/search?q=directshow+%E5%86%8D%E7%94%9F%E9%80%9F%E5%BA%A6&lr=lang_ja&ie=utf-8&oe=utf-8
C++ のサンプルが先頭に見つかりますがこれじゃ駄目ってことですか?
引用返信 編集キー/
■30276 / inTopicNo.3)  Re[2]: DirectShowでwmvファイルの可変速再生
□投稿者/ よう (8回)-(2008/12/19(Fri) 21:37:10)
よう さんの Web サイト
geekなページに書かれている方法でやっているのですが、

IMediaPosition のput_Rate()で値を渡しても1.0になってしまいます。
wmvファイルではなく、他の形式のファイル(mp4ファイル)ではうまくいったので、
wmvファイルの再生時だけうまくいかないのだと思います。

引用返信 編集キー/
■30277 / inTopicNo.4)  Re[3]: DirectShowでwmvファイルの可変速再生
□投稿者/ Azulean (244回)-(2008/12/19(Fri) 22:38:45)
WMVはプレイヤー側で自由に再生速度を変えることができません。(通常の手法では)
引用返信 編集キー/
■30315 / inTopicNo.5)  Re[4]: DirectShowでwmvファイルの可変速再生
□投稿者/ よう (9回)-(2008/12/20(Sat) 23:58:02)
よう さんの Web サイト
No30277 (Azulean さん) に返信
> WMVはプレイヤー側で自由に再生速度を変えることができません。(通常の手法では)

そうですか。
では通常でない手法とはどんなものがるのでしょうか?
ご存知でしたら教えていただけますでしょうか。
引用返信 編集キー/
■30320 / inTopicNo.6)  Re[5]: DirectShowでwmvファイルの可変速再生
□投稿者/ たくボン (122回)-(2008/12/21(Sun) 01:42:24)
2008/12/21(Sun) 01:47:13 編集(投稿者)

No30315 (よう さん) に返信
> ■No30277 (Azulean さん) に返信
> では通常でない手法とはどんなものがるのでしょうか?
> ご存知でしたら教えていただけますでしょうか。

通常じゃない方法なら、自分でフレームを読み込んでコーデックに食わせるとか。
H264とかに速度とかの値を持ってたと思うから、読み込んでバッファに書き出す前に速度を計算して変更。(うろ覚えだからRFCで確認してください)
(去年似たようなの作ったけどソース持ち出し禁止の会社だったから手元にソースがない。。。もし、やるならC#よりCかC++をお勧め。ポインタ、typedef,union等使えないと厳しいかな)

あと簡単なのは再エンコード。

引用返信 編集キー/
■30323 / inTopicNo.7)  Re[5]: DirectShowでwmvファイルの可変速再生
□投稿者/ Azulean (249回)-(2008/12/21(Sun) 10:28:02)
>>WMVはプレイヤー側で自由に再生速度を変えることができません。(通常の手法では)
> そうですか。
根拠は http://msdn.microsoft.com/en-us/library/bb736031.aspx です。

> The WM ASF Reader supports the DirectShow IMediaSeeking interface,
> which enables applications to perform temporal seeking within the file.
> However, playback at speeds other than 1.0 (as specified in IMediaSeeking::SetRate) is not supported.


> では通常でない手法とはどんなものがるのでしょうか?
> ご存知でしたら教えていただけますでしょうか。
期待させてしまって申し訳ありませんが、良い手法を提案できる状態にないです。
知っている手法でも、再生速度を変えたと言えるものではありませんので…。
引用返信 編集キー/
■30416 / inTopicNo.8)  Re[6]: DirectShowでwmvファイルの可変速再生
□投稿者/ よう (10回)-(2008/12/23(Tue) 02:12:07)
Azulean さん、 たくボン さん

ご回答ありがとうございました。
ちょっと無理そうなので可変速再生の機能は見送ることになりました。

WindowsMediaPlayerではwmvファイルで可変速再生(しかも、音程を下げずにスロー再生)ができました。
プロジェクトでも初期はWindowsMediaPlayerを使っていたのですが、
30分以上のファイルはおよそシークという方法でシークされて正確な位置にシークすることが出来ませんでした。

帯に短し、襷に長しという感じです。

可変速再生はせっかくWindowsMediaPlayerに入っている機能なのに
DirectShowで使えないのは残念です。

そういうわけでこのトピックは閉じますね。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -