HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2016
1015
赤松MCIでの動画の再生について9解決


赤松

リンク

2016/10/15(Sat) 11:42:53|NO.77131

以前メディアプレーヤーでのbcopyの仕方で質問をさせていただいたものです
初歩的な質問にもかかわらず親切にありがとうございました

今回教えていただきたいのはMCIのことです
単刀直入に言うと動画を再生したいのですが、mmplayでは再生できましたが
コマ送りで再生しながらbmpsaveなどで連番画像を出力したいと考えているため
MCIにて再生したほうが細かい操作が利くと思い、とりあえずは保存部分は置いておいて
動画を再生する部分を考えています。
とりあえずMCIの使い方を理解するため

exist "movie.avi" if strsize = -1:dialog "動画ファイルがありません" , 2 , "ファイルが存在しません":end mci "open movie.avi alias movie" mci "play movie"

を組んで実行したのですが
openのところでstatに-1が返ってきます
もちろん再生もできません
mp4(H264)やmp4(mpeg2/4)、flvや無圧縮のaviなど思いつく限り試しましたがダメでした

質問1. aviやmp4などがopenできない理由として考えられる原因はなんでしょうか?
質問2. MCIのopenコマンドのオプションでtypeを指定したほうがいいんでしょうか?

open movie.avi type AVIVideo
などしてみましたが全く変わりなかったです(statに3が返った)

質問3.他の環境(自分の環境はwin7の64bitです)では上ので動作しますか?
(プログラムは合っていますか?ということです)

以上3つの質問に答えていただきたいです。
ちなみに動画ファイルは他のプレーヤーなら問題なく再生できたので
動画ファイルの問題ではないと思います

もし情報が足りないようでしたらすみません



この記事に返信する


kanamaru

リンク

2016/10/15(Sat) 13:20:25|NO.77137

MCIに渡すファイル名は、
相対パスではなく、絶対パスである必要があります。
とりあえず、ファイル名の前にdir_curを足せばいいかと。



赤松

リンク

2016/10/16(Sun) 09:18:58|NO.77168

絶対パスしか受け付けないというのは知りませんでした。
ありがとうございます。
ところが相対パスとのことで

dialog "mp4" , 16 , "動画ファイル" if stat = 1{ moviepath = "\""+refstr+"\"" } mci "open "+moviepath+" alias movie" mci "play movie"
として実行しましたがやはり再生することができません。
ファイルパスは全角のフォルダなどは一切ありません。
(H264のmp4と無圧縮aviで試しました)
度々申し訳ないです。



スペース

リンク

2016/10/16(Sun) 12:35:19|NO.77170

こちらでは問題なく再生できました。
以下、再生できた動画を真空波動研で調べた結果です。
1920x1080 23Bit XviD 1.2.1 60.00fps



MillkeyStars

リンク

2016/10/16(Sun) 14:30:29|NO.77171

動画の拡張子で type を判別するから AVIVideo で再生できないなら、type を MPEGVideo として明示的に読み込ませないとだめだよ。



赤松

リンク

2016/10/18(Tue) 16:53:13|NO.77194

返信が遅くなってしまい申し訳ありません。
MillkeyStars様ありがとうございます。

dialog "mp4" , 16 , "動画ファイル" if stat = 1{ moviepath = "\""+refstr+"\"" } mci "open "+moviepath+" alias movie type MPEGVideo" mci "play movie"
とtypeを指定するように変更して
C:/movie/movie.mp4
を読み込でみました。
ですがstatに-1が返るだけでした

動画ファイルがおかしいのかな?と思いXviDとAviUtlで出力した720,478の30fpsのファイルに
してみたりしましたが全くダメでした
ハードディスクにあるいろんな動画ファイルを手当たり次第に再生していますがどれも同じです

もしやこのパソコンがおかしいのでは?とexeにしたものを知り合いの家のパソコンで実行したのですが
動作しなかったのでこのコードがどこかおかしいのかとも思うのですが、
スペース様は再生できたとのことなので困っています。



スペース

リンク

2016/10/18(Tue) 19:36:46|NO.77195

再生できたファイルをGoogle Driveにアップしておきます。
https://drive.google.com/open?id=0B9ot1K3av4xTenVLamhZTlFZOE0



mon

リンク

2016/10/18(Tue) 21:58:46|NO.77197

基本的なことですけどmp4を再生するためのデコーダやスプリッタは入っているんでしょうか。
ないのならLAV Filtersなどを入れてください。



MillkeyStars

リンク

2016/10/19(Wed) 01:39:13|NO.77198

MCI 対応拡張子と type 識別文字列を調べるスクリプト

#include "hspext.as" screen 0,800,600,0 font "MSゴシック",12 TagName = "" TagValue = "" Regkey 1,"Software\\Microsoft\\Windows NT\\CurrentVersion\\MCI Extensions",0 color 255,0,0 mes "システムに登録されている MCI 対応拡張子と type 識別文字列\n(このリストにない拡張子は対応できません)" mes "また、システムにコーデックが存在しない場合、対応している拡張子でも再生できない可能性が高いです。" mes "その場合は、mon さんが回答している LAV Filters などのコーデックをシステムに入れてください" color 0,0,0 sdim RegListStr,340000 Reglist RegListStr,0 notesel RegListStr pos 0,60 repeat notemax noteget TagName,cnt getreg TagValue,TagName,1,64 mes strf("%s\t : %s",TagName,TagValue) if ((cnt\40) == 0)&&(cnt!0) : px += 200 : pos px,60 loop



赤松

リンク

2016/10/21(Fri) 16:17:01|NO.77206

LAVFiltersを使っていたのでmp4などは問題ないと思っていたのですが
LAVFiltersとWin7DSFilterTweakerを念のため再インストールしてみたところ
再生できたりできなかったり、不安定ではありますがとりあえず
なんとか解決できそうな感じです。
ここからは自力で色々試してみようと思います。ありがとうございました。



ONION software Copyright 1997-2023(c) All rights reserved.