Play Video

Deploying to Windows? Utilizing VB Script execution? This is the place to ask Windows-specific questions.

Moderators: FourthWorld, heatherlaine, Klaus, kevinmiller, robinmiller

chelling
Posts: 100
Joined: Tue Mar 06, 2007 3:14 am

Play Video

Post by chelling » Tue Nov 20, 2018 3:07 pm

I am trying to get videos to play appropriately un Windows. For background, this is a free app that will be given to children and adults with disabilities, who need to either learn how to use adapted interfaces to a computer, or just develop basic interface operational competency. So, I need to be able to set this up with a caregiver, and it just works.

The videos are MP4 files. They will play in Windows 10 using the MPC-HC or Movies & TV player.So I am guessing this is a path issue.

The video files are in the folder "VideoFolder". In the stand alone settings, I have enabled "Copy Referenced Files" and named the Destination Folder "resources". This folder is created in the Mac build but not Windows. This works perfectly on Mac, but not Windows:

on loadVideo pVidName
put "BarnChatter_1.mp4" into pVidName
put "VideoFolder/" & pVidName into tPath
set the filename of player "movie" to tPath
end loadVideo

This also doesn't work in Windows:

on loadVideo pVidName
put "BarnChatter_1.mp4" into pVidName
put specialFolderPath("resources") & "/VideoFolder/" & pVidName into tPath
set the filename of player "movie" to tPath
end loadVideo


This is a card script:

global gActivity

on preOpenCard
put "BarnChatter" into gActivity
loadVideo
if there is a player "movie" then set the currentTime of player "movie" to 0
end preOpenCard

on openCard
start player "movie"
end openCard

on playStopped
wait 60 with messages --this is for users to cognitively process the end of the movie
unmark this card
visual effect "push down" to card
go to card "aac_Choice_cd"
end playStopped

on closeCard
if there is a player "movie" then stop player "movie"
end closeCard

--on loadVideo pVidName
-- put "BarnChatter_1.mp4" into pVidName
-- put specialFolderPath("resources") & "/VideoFolder/" & pVidName into tPath
-- set the filename of player "movie" to tPath
--end loadVideo


on loadVideo pVidName
put "BarnChatter_1.mp4" into pVidName
put "VideoFolder/" & pVidName into tPath
set the filename of player "movie" to tPath
end loadVideo


I have promised this to a parent by Thanksgiving. Can anyone please point me in the correct direction? Should I convert the videos to MPEG? I have read that this seems to work better in Windows.

Thanks in advance!

bogs
Posts: 5435
Joined: Sat Feb 25, 2017 10:45 pm

Re: Play Video

Post by bogs » Tue Nov 20, 2018 3:17 pm

I haven't really looked through Windows with any vigor in many years, but I suspect this is a codecs issue. I would try to figure out the video formats that Windows is definitely going to be able to play, like .avi for instance, then cross reference to what Lc is set to play, although, I believe now Lc uses Windows media player (or its equivalent), so it should be anything media player is set to play by default.

Of course, I don't do much with videos either :roll: so I could be way off.
Image

chelling
Posts: 100
Joined: Tue Mar 06, 2007 3:14 am

Re: Play Video

Post by chelling » Tue Nov 20, 2018 3:24 pm

The .avi format literally triples the movie size - there are 45 movies total. The MP4's are playing using Windows players. I also installed K-Lite_Codec_Pack. These will mostly be played on low power tablet style computer systems, so I am really trying to keep the size as small as possible.

Klaus
Posts: 13806
Joined: Sat Apr 08, 2006 8:41 am
Location: Germany
Contact:

Re: Play Video

Post by Klaus » Tue Nov 20, 2018 3:29 pm

If LC can play a MP4 movie in a player object, then it is not a codec issue. Did you try that?
Most of the time this is a pathname issue.

I haven't beeen using Windows for a long time, and never used the checkbox "Copy referenced files", so what does the folder structure of your Win standalone looks like in the end?

Are you sure the video gets copied to the standalone? That namely checkbox only affects images and player objects that already have a filename during development.

chelling
Posts: 100
Joined: Tue Mar 06, 2007 3:14 am

Re: Play Video

Post by chelling » Tue Nov 20, 2018 3:43 pm

If LC can play a MP4 movie in a player object, then it is not a codec issue. Did you try that?
Most of the time this is a pathname issue.

I don't think it is a codec issue. The MP4 files play fine in Windows 10 using the MPC-HC or Movies & TV player.

I haven't beeen using Windows for a long time, and never used the checkbox "Copy referenced files", so what does the folder structure of your Win standalone looks like in the end?

Test Build > Cause2Effect >
Externals (contains tsNet file)
VideoFolder (Contains all the video files)
Cause2Effect.exe

I have also added the folder "VideoFolder" to the Copy Files pane.

Klaus
Posts: 13806
Joined: Sat Apr 08, 2006 8:41 am
Location: Germany
Contact:

Re: Play Video

Post by Klaus » Tue Nov 20, 2018 3:56 pm

chelling wrote:
Tue Nov 20, 2018 3:43 pm
If LC can play a MP4 movie in a player object, then it is not a codec issue. Did you try that?
Most of the time this is a pathname issue.
I don't think it is a codec issue. The MP4 files play fine in Windows 10 using the MPC-HC or Movies & TV player.
Please try my advice!
LC is using an older API for multimedia stuff on Window, so if a file plays fine in WMP or any other Windows-native videoplayer does not mean it will work inside of LC!

And please check -> the result right after setting the filename:

Code: Select all

...
put "BarnChatter_1.mp4" into pVidName
put "VideoFolder/" & pVidName into tPath
set the filename of player "movie" to tPath
if the result <> EMPTY then
  answer the result
end if
...

SparkOut
Posts: 2839
Joined: Sun Sep 23, 2007 4:58 pm

Re: Play Video

Post by SparkOut » Tue Nov 20, 2018 4:03 pm

LC players on Windows use the VFW api. This does not have the same codecs autobundled that other players have. The K-Lite codec pack normally sorts out the issue.

Do the players load content but play only sound with a black or striped background?
If so, it is still a codec thing. Try reinstalling the codec pack and rebooting if that is the case.

If you renamed the destination folder "resources" under the copy files pane, then you probably have another folder called resources nested inside the resources folder. Check the paths. In your script try "if there is a file..." to see if the video you want can be found. It could be the nested folder, or a wrong name, or a filename/path with special characters, or a problem with the folder location relative to the executable.

Hopefully you can get to the bottom of this. I use mp4 videos on Windows (using the K-Lite codecs) so it can be done.

[Edit... outklaussed again!]

bogs
Posts: 5435
Joined: Sat Feb 25, 2017 10:45 pm

Re: Play Video

Post by bogs » Tue Nov 20, 2018 4:31 pm

chelling wrote:
Tue Nov 20, 2018 3:24 pm
The .avi format literally triples the movie size - there are 45 movies total.
I'm sorry, I must not have been clear enough in my previous post. I wasn't suggesting you use the .avi format, it was merely an example of what I *know* windows has, that Lc will "play". As I said, I haven't touched a windows machine in any serious way in a long time, and can't remember off the top of my head the common formats to both Windows and Lc.

Sorry for any confusion, looks like Klaus and SparkOut have you going the right way though.
Image

chelling
Posts: 100
Joined: Tue Mar 06, 2007 3:14 am

Re: Play Video

Post by chelling » Tue Nov 20, 2018 5:45 pm

@Klaus - Sorry I misread your advice. The result is VideoFolder/BarnChatter_1.mp4

@SparkOut - In Livecode, it only plays the sound, the card is white. I didn't rename the destination folder "resources" under the copy files pane. That is "VideoFolder". In "Copy Referenced Files" I did name the Destination Folder "resources". In the Mac, this creates a folder "resources" as part of the package, so the app can be distributed without dependencies. I renamed it specifically to test the Windows side, and it is not being created. That's why this works in Mac and not Windows:

on loadVideo pVidName
put "BarnChatter_1.mp4" into pVidName
put specialFolderPath("resources") & "/VideoFolder/" & pVidName into tPath
set the filename of player "movie" to tPath
end loadVideo

I am going to try MPEG format. I am still open to and appreciate any and all suggestions.

@bogs - Thanks!

Klaus
Posts: 13806
Joined: Sat Apr 08, 2006 8:41 am
Location: Germany
Contact:

Re: Play Video

Post by Klaus » Tue Nov 20, 2018 6:53 pm

My advice was to play your MP4 in a player object in another stack, just to test if the codec works!

And the result is EMPTY if setting the filename (via script) was successfull!
If the video was not found, it will read: could not create movie reference
Just tested here.

So please check everything again.

SparkOut
Posts: 2839
Joined: Sun Sep 23, 2007 4:58 pm

Re: Play Video

Post by SparkOut » Tue Nov 20, 2018 10:10 pm

If it plays the sound but not video, that to me is a sign of a codec problem. If you reinstall the codec pack and REBOOT the computer, does it play then?
If not, is it possible to upload a sample video that I can test here and check whether it's just your environment or if there is something about it that means it won't play at all?

Klaus
Posts: 13806
Joined: Sat Apr 08, 2006 8:41 am
Location: Germany
Contact:

Re: Play Video

Post by Klaus » Wed Nov 21, 2018 12:03 pm

Made a test on Windows 10 (on my Mac with Paralells) and everything worked as exspected.
I created a stack with one EMPTY player object and one button.
Buttons script:

Code: Select all

on mouseUp 
   set the filename of player 1 to (specialfolderpath("resources") & "/testvideo.mp4")
end mouseUp 
Then I created a standalone for Mac and Windows.
Works on Mac and also fine on Windows, video is found and plays.
I also had installed an extra codec package some time ago.

See attached screenshot of the folder structure on Windows.
win_standalone.jpg

Klaus
Posts: 13806
Joined: Sat Apr 08, 2006 8:41 am
Location: Germany
Contact:

Re: Play Video

Post by Klaus » Wed Nov 21, 2018 12:16 pm

Just repeated the test, but put the video into a folder named "VideoFolder", changed the buttons script to:

Code: Select all

on mouseUp 
   set the filename of player 1 to (specialfolderpath("resources") & "/VideoFolder/testvideo.mp4")
end mouseUp 
And it also worked as advertized.

FourthWorld
VIP Livecode Opensource Backer
VIP Livecode Opensource Backer
Posts: 9802
Joined: Sat Apr 08, 2006 7:05 am
Location: Los Angeles
Contact:

Re: Play Video

Post by FourthWorld » Wed Nov 21, 2018 6:45 pm

Klaus wrote:
Wed Nov 21, 2018 12:16 pm
Just repeated the test, but put the video into a folder named "VideoFolder", changed the buttons script to:

Code: Select all

on mouseUp 
   set the filename of player 1 to (specialfolderpath("resources") & "/VideoFolder/testvideo.mp4")
end mouseUp 
And it also worked as advertized.
Now try that on Linux. ;)
Richard Gaskin
LiveCode development, training, and consulting services: Fourth World Systems
LiveCode Group on Facebook
LiveCode Group on LinkedIn

jacque
VIP Livecode Opensource Backer
VIP Livecode Opensource Backer
Posts: 7214
Joined: Sat Apr 08, 2006 8:31 pm
Location: Minneapolis MN
Contact:

Re: Play Video

Post by jacque » Wed Nov 21, 2018 6:52 pm

It sounds like two problems. I can't help much with the codec issue. For the file path, don't create any folder named Resources, the standalone builder does that automatically for you.

Drag the VideoFolder to the Copy Files pane of the standalone settings. Turn off the checkbox, you don't need it because you're creating your own file paths in script.

The path to the videos on either platform will be:
specialfolderpath("resources") & "/VideoFolder/<video name>")

This is also the path during development, since specialFolderPath("resources") points to the folder containing the mainstack in the IDE.
Jacqueline Landman Gay | jacque at hyperactivesw dot com
HyperActive Software | http://www.hyperactivesw.com

Post Reply

Return to “Windows”