Post subject: DeSmuMe: how to put picture in ScreenSeparation place?
Site Admin, Skilled player (1236)
Joined: 4/17/2010
Posts: 11274
Location: RU
Like here: Link to video
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Editor, Expert player (2315)
Joined: 5/15/2007
Posts: 3856
Location: Germany
a = avisource("clip.avi").crop(0,0,-0,-192)
b = ImageSource(file="pic.png", start=0, end=a.FrameCount)
c = avisource("clip.avi").crop(0,192,-0,-0)

return StackVertical(a,b,c)
The pic needs to have the same width as the two screens. I don't know if this will work, probably not because a & c have different file format than b. I will just leave this here for further modifications and reference. If you only want a bar between two screens:
a = avisource("clip.avi").crop(0,0,-0,-192)
b = avisource("clip.avi").crop(0,192,-0,-0).AddBorders(0,X,0,0, Y)

return StackVertical(a,b)
Where X is the number of pixels of height of your bar and Y the color in $000000 format.
Former player
Joined: 12/5/2007
Posts: 716
Without testing MUGG's solutions, I'd say it's way simpler than the solution I used back then. I think I wrote some hack-ish program in C that read the raw input the emulator produced from a fifo file, read half the frame, threw in the logo and read the rest of the frame. All that was then given to mencoder to encode over 2 or even 3 passes. Unfortunately, I can't seem to find said code anymore (other than it being superfluous), so I can't provide you with the tools I used.
Site Admin, Skilled player (1236)
Joined: 4/17/2010
Posts: 11274
Location: RU
MUGG Both commands work pretty awesome. But the first is more useful, cuz one may use mere black picture with it when necessary.
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Editor, Skilled player (1941)
Joined: 6/15/2005
Posts: 3247
If anyone is wondering, the code here uses AVISynth and the code is saved as a .avs file.
Editor, Expert player (2315)
Joined: 5/15/2007
Posts: 3856
Location: Germany
Oh I totally forgot to mention that the code was Avisynth. I'm glad it worked.
Site Admin, Skilled player (1236)
Joined: 4/17/2010
Posts: 11274
Location: RU
Please, tell how do you like the result: http://www.youtube.com/watch?v=KzhN8XlKn58 It was made with these commands:
a = AVISource("movie.avi")
b = a.ChangeFPS(25).Trim(0,46020)
c = b.PointResize(b.width * 4, b.height * 4)

d = ImageSource(file="logoHD NDS.png", start=0, end=49, fps=c.FrameRate).ConvertToRGB24()
e = BlankClip(d, audio_rate=a.AudioRate, channels=a.AudioChannels)
f = AudioDub(d, e)

g = f + c

crop1 = g.crop(0,0,-0,-768)
crop3 = g.crop(0,768,-0,-0)
crop2 = ImageSource(file="crop.png", start=0, end=g.FrameCount, fps=g.FrameRate).ConvertToRGB24()
last = StackVertical(crop1,crop2,crop3)

ConvertToYV24(chromaresample="point", matrix="PC.601")
ConvertToYV12(chromaresample="point", matrix="PC.601")
where crop.png is 1024x256 & logoHD NDS.png is 1024x1536
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Editor, Expert player (2315)
Joined: 5/15/2007
Posts: 3856
Location: Germany
Please, tell how do you like the result:
+ It's good when you embed the video and make the player vertically tall so you can see everything properly. - On the Youtube site itself however, having the screens on top of each other decreases the visibility and the logo between the screens makes it even worse. One has to use the "watch in fullscreen" feature. I would use the extra space besides the videos This is only a demonstration picture. Also, it's only my suggestion.
Site Admin, Skilled player (1236)
Joined: 4/17/2010
Posts: 11274
Location: RU
MUGG wrote:
One has to use the "watch in fullscreen" feature.
Sure! Anyway, it's a display height limitation that may affect adversely. Also i had an idea of encode without separation too.
MUGG wrote:
I would use the extra space besides the videos
Why?
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Editor, Expert player (2315)
Joined: 5/15/2007
Posts: 3856
Location: Germany
Why?
You can use the extra space effectively, filling it with a bigger version of the bottom screen. I made a picture demonstrating this. If the extra space is not used, you only have 2 small screens and a lot of black space next to the screens which looks kind of bad...
Site Admin, Skilled player (1236)
Joined: 4/17/2010
Posts: 11274
Location: RU
You mean we shall not resize the whole picture, only add a resized bottom screen to it? Command plz EDIT: if we upload on YT, even whole picture needs resizing to go over 1080 to become Original. So it must have 1536 of height, as well as resized bottom screen near it. Also it is not ideal cuz Contra 4 has events on both screens, even whole levels on the other one.
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Editor, Expert player (2315)
Joined: 5/15/2007
Posts: 3856
Location: Germany
a = AVISource("movie.avi").crop(0,0,-0,-192).ChangeFPS(25).Trim(0,46020)
b = AVISource("movie.avi").crop(0,192,-0,-0) .ChangeFPS(25).Trim(0,46020)
c = ImageSource(file="logo.png", start=0, end=a.FrameCount, fps=a.FrameRate).ConvertToRGB24() 

d = StackVertical(a,c,b)
e = b.PointResize(b.width * 2, b.height * 2).AddBorders(0,0,2,X)
f = StackHorizontal(e, d)
return f
movie.avi = your movie, recorded from desmume logo.png = your logo (width = 256, height = X) Not sure if this will work, I didn't test. This should create what I had in mind with my demonstration pic. Note: It won't give a fully resized bottom screen since I don't know how to deal with the logo between the two screens (when creating a resized bottom screen).
Site Admin, Skilled player (1236)
Joined: 4/17/2010
Posts: 11274
Location: RU
Damned code:
a = AVISource("movie.avi").ChangeFPS(25)

crop1 = a.Crop(0,0,-0,-192).PointResize(a.width * 5 / 2, a.height * 5 / 4)
crop3 = a.Crop(0,192,-0,-0).PointResize(a.width * 5 / 2, a.height * 5 / 4)
crop2 = ImageSource(file="tasvideos.png", start=0, end=a.FrameCount, fps=a.FrameRate).ConvertToRGB24()

v1 = a.Crop(0,192,-0,-0).PointResize(a.width * 6, a.height * 3)
v2 = StackVertical(crop1,crop2,crop3)

last = StackHorizontal(v1,v2)

ConvertToYV24(chromaresample="point", matrix="PC.601")
ConvertToYV12(chromaresample="point", matrix="PC.601")
Example picture: [URL=http://img534.imageshack.us/img534/5816/78309859.png][/URL] [URL=http://i53.tinypic.com/29byjko.png][/URL] Just do not fusillade me for these 5/2 & 5/4.
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Site Admin, Skilled player (1236)
Joined: 4/17/2010
Posts: 11274
Location: RU
Ooooookay! Check that out: Part 1 Part 2 Playlist Source code
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Guga
He/Him
Joined: 1/17/2012
Posts: 838
Location: Chile
Can anyone help me creating this script again? The image between the two DS screens is useless, and apparently, it has no subtitles added. My knowledge of AviSynth is none, so please help me.
creaothceann
He/Him
Editor
Joined: 4/7/2005
Posts: 1874
Location: Germany
OK