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

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

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

Re[4]: DVDの字幕を取得するには?


(過去ログ 89 を表示中)

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

■52936 / inTopicNo.1)  DVDの字幕を取得するには?
  
□投稿者/ 司鵬 (1回)-(2010/08/30(Mon) 08:02:09)

分類:[C#] 

2010/08/30(Mon) 08:25:49 編集(投稿者)

こんばんは、初級者です。VS2008STD,C#.Net3.5でVista上で開発しています。早速ですが、内容はタイトルのままです。

WMP(axWindowsMediaPlayerコンポーネント)で再生中のDVD字幕(caption,subtitles)複数の取得(get)をし、string型 で複数のテキストボックスに表示したいのです。以下のあたりでキャストが問題でエラーが出ています。

using WMPLib;
using AxWMPLib;
using System.Runtime.InteropServices;

IWMPClosedCaption2 cap = (IWMPClosedCaption2)axWindowsMediaPlayer1.closedCaption;
//for (int j = 0; j < cap.SAMILangCount; j++)
//{
//int k = 0;
//textBox3.Text += "capid" + cap.getSAMILangName(k);
//}
//var newOption="";
for (int i = 0; i < cap.SAMILangCount; i++) //cap.SAMILangCount; i++)
{
try
{
WebBrowser web = new WebBrowser();
//web.Document.CreateElement("option");
//newOption = document.createElement("OPTION");
textBox3.Text = cap.getSAMILangName(i);
//textBox3.Text = newOption.text;
//newOption.value = newOption.text;
//CCLang.options.add(newOption);
}
catch(Exception ex)
{
MessageBox.Show(ex.Message, "error");
}

}

また、以下のコードも何も文字を返してくれません。

textBox1.Text += cap.captioningId;
textBox1.Text += cap.SAMIFileName;

どなたか、DVDから字幕の取得の仕方をご教授、よろしくお願いします。

ちなみにthe sound of musicとthe untouchablesのDVDで試しています。

DVDによっても微妙にオーディオの言語変更に違いがありました。

引用返信 編集キー/
■52968 / inTopicNo.2)  Re[1]: DVDの字幕を取得するには?
□投稿者/ すなふきぬ (33回)-(2010/08/30(Mon) 21:52:51)
No52936 (司鵬 さん) に返信
> 2010/08/30(Mon) 08:25:49 編集(投稿者)
>
> こんばんは、初級者です。VS2008STD,C#.Net3.5でVista上で開発しています。早速ですが、内容はタイトルのままです。
>
> WMP(axWindowsMediaPlayerコンポーネント)で再生中のDVD字幕(caption,subtitles)複数の取得(get)をし、string型 で複数のテキストボックスに表示したいのです。以下のあたりでキャストが問題でエラーが出ています。

字幕の部分でしょうか?それともタイトルとか?
引用返信 編集キー/
■52969 / inTopicNo.3)  Re[2]: DVDの字幕を取得するには?
□投稿者/ Azulean (600回)-(2010/08/30(Mon) 22:46:27)
つなげておきます。
http://social.msdn.microsoft.com/Forums/ja-JP/csharpgeneralja/thread/4c93fc26-13b3-4689-aa59-5d6276381e02
引用返信 編集キー/
■52971 / inTopicNo.4)  Re[2]: DVDの字幕を取得するには?
□投稿者/ 司鵬 (2回)-(2010/08/30(Mon) 23:11:45)
No52968 (すなふきぬ さん) に返信
> ■No52936 (司鵬 さん) に返信
>>2010/08/30(Mon) 08:25:49 編集(投稿者)
>>
>> こんばんは、初級者です。VS2008STD,C#.Net3.5でVista上で開発しています。早速ですが、内容はタイトルのままです。
>>
>>WMP(axWindowsMediaPlayerコンポーネント)で再生中のDVD字幕(caption,subtitles)複数の取得(get)をし、string型 で複数のテキストボックスに表示したいのです。以下のあたりでキャストが問題でエラーが出ています。
>
> 字幕の部分でしょうか?それともタイトルとか?
返信ありがとうございました。
字幕の部分です。
どうやらDVDの.vob(拡張子)と.ifoのファイルに字幕のデータが入っているようです。
だから、closedcaptionで得られることは、なさそうです。

引用返信 編集キー/
■53004 / inTopicNo.5)  Re[3]: DVDの字幕を取得するには?
□投稿者/ すなふきぬ (34回)-(2010/09/01(Wed) 00:27:49)
No52971 (司鵬 さん) に返信
> ■No52968 (すなふきぬ さん) に返信
>>■No52936 (司鵬 さん) に返信
> >>2010/08/30(Mon) 08:25:49 編集(投稿者)

>>字幕の部分でしょうか?それともタイトルとか?
> 返信ありがとうございました。
> 字幕の部分です。
> どうやらDVDの.vob(拡張子)と.ifoのファイルに字幕のデータが入っているようです。
> だから、closedcaptionで得られることは、なさそうです。

WMPは使ったことがないので、詳しい人お願いします。

話の流れからするとIFOに入ってそうなので、そっちに絞って書きます。
IFOファイルに字幕が入っている場合、チャンクとか構造体がわかるなら自力で吸い出すのも一つの方法です。
IFO形式は

http://www005.upp.so-net.ne.jp/neko-note/index.files/3rd/cd-dvd/dcd-ifo.html

この辺りを参考にしてみてください。(頭の方にある言語優先、オフセット0154と字幕属性辺り。)

VOBの場合はもっと複雑になるだろうから、海外とかからデコーダのソースを参考にして作るか、ライブラリを探すのが一番かと。(WMPコンポーネントでできるならそれが一番ですが)
あと、個人の感想ですがチャンクとかを扱うならC#だとちょっとめんどくさいかも(共用体とか共用体とか・・・。素直にCが良いと思います。)

最後の手段としては、フリーのツールで先に字幕だけ吸い取ってしまう方法でしょうか。どのような目的で使用されるかわからないので、この方法が使えるかどうかはわかりませんが。

サウンドオブミュージックやアンタッチャブルでテストされているみたいですが、法的には問題ない使用方法なんですよね?法律には詳しくないですが、市販のDVDからデータを抽出はアウトだったような気もします。

引用返信 編集キー/
■53054 / inTopicNo.6)  Re[4]: DVDの字幕を取得するには?
□投稿者/ 司鵬 (3回)-(2010/09/02(Thu) 11:04:22)
No53004 (すなふきぬ さん) に返信

丁寧で有力な情報、本当にありがとうございました。
目的は、難聴者(昔の知人も含め)の方のための語学学習用に字幕を2カ国同時表示するDVD再生プレイヤーソフトを作るためです。

> VOBの場合はもっと複雑になるだろうから、海外とかからデコーダのソースを参考にして作るか、ライブラリを探すのが一番かと。(WMPコンポーネントでできるならそれが一番ですが)
> あと、個人の感想ですがチャンクとかを扱うならC#だとちょっとめんどくさいかも(共用体とか共用体とか・・・。素直にCが良いと思います。)

おそらくVOBだと思われます。DSHOWのDVDナビゲーター(VOBからsubpicture streamを分離してくれる。)というのを試してみようと考えています。
それには、やはりC++を使うしかないようです。


> 最後の手段としては、フリーのツールで先に字幕だけ吸い取ってしまう方法でしょうか。どのような目的で使用されるかわからないので、この方法が使えるかどうかはわかりませんが。

フリーのツールを利用すると、有償、無償を問わずライセンスや著作権法にふれ、再頒布できなくなる恐れがあるので使う予定はありません。
すみません。
ソフトが悪用されるのを防ぐために、subpicture stream(動画)のままDVD再生のリアルタイム表示し、テキスト(string,char*)にせず表示することにします。

> サウンドオブミュージックやアンタッチャブルでテストされているみたいですが、法的には問題ない使用方法なんですよね?法律には詳しくないですが、市販のDVDからデータを抽出はアウトだったような気もします。

M社のVSのDSHOWでDVD再生機を作るだけなので、国内法的には問題はないと思います。
DVDのデータ抽出が目的なのではないので大丈夫なはずです。
(知財法+民法を勉強中ですが、国際条約は、苦手なので自信がありませんが...。)

有力な情報、本当にありがとうございました。
それでは失礼します。


解決済み
引用返信 編集キー/


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

このトピックに書きこむ

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

管理者用

- Child Tree -