PDA

View Full Version : D2Vid - concept - Cross-platform video encoding software


profoX
02-14-2008, 20:52
A few days ago I started to write an (open source) application to convert any video file I have to the D2 format. It is designed to run on both Linux and Windows from the same codebase. If there's enough interest from Mac/Solaris/BSD users, I will also build and test versions for those operating systems.

The application is far from finished. I wrote a roadmap and have some temporary screenshots. What I'd like to know is whether you think something important is missing from the roadmap, or whether there's something wrong with the screenshots.

And also, is this application wanted? Or do you think the applications that currently exist for Linux/Windows/Mac/Solaris/BSD are already good enough for you?... If so, what do you use then, for Linux?

Screenshots:
http://wesley.debianbox.be/images/d2vid_1.png
http://wesley.debianbox.be/images/d2vid_2.png
http://wesley.debianbox.be/images/d2vid_3.png
http://wesley.debianbox.be/images/d2vid_4.png
http://wesley.debianbox.be/images/d2vid_5.png
http://wesley.debianbox.be/images/d2vid_6.png

Technical details:

Programming language: C++
Cross-platform and GUI toolkit: Qt 4.3
Encoding backend: mencoder
Analysis/preview backend: mplayer
Muxing backend: mencoder (or possibly ffmpeg)
Software license: GPL v2 open source license


Roadmap:
Version 0.1
-----------
- 1 file per conversion run
- optimized to work around D2 sync bug
- settings are not saved
- support multithreaded encoding (autothreading and manual threading)
- detect audio tracks and choose internal audio track
- use external audio track
- disable audio option
- use external subtitle file
- video/audio bitrate and frame control
- widescreen conversion (cropping, black bars)
- configurable subtitling
- preview result (and preview encoding quality)
- binaries for ubuntu and windows
- only recompress audio if it isn't MP3

Version 0.2
-----------
- multiple files per conversion run
- remember settings and make paths configurable
- support internal subtitles
- more subtitling options by allowing ASS/SSA styled subtitles
- enable full ASS/SSA rendering for ASS/SSA subtitles
- direct DVD track encoding
- drag&drop support
- support more video options (deinterlace, reindexing, zoom, gamma, sharpen)
- ability to choose which part of the video to encode
- audio normalisation
- support translations + Dutch translation

Version 0.3
-----------
- audio-only encoding (with image)
- non-GUI console version
- possibly rename project and support more media players using profiles

Version 0.4
-----------
- special audio-only encoding (visualisations + album art + live info)
- daemon version with directory checking

LukesRamen
02-15-2008, 00:56
lookin' good...

can't wait until the release [thumbsup]

hibell
02-15-2008, 01:38
please build a mac version. i would like to use both my pc and my powerbook. don't like being limited to just one.

Temet
02-15-2008, 02:39
Well that's what I was planning too, using Qt4.
That's why I'm studying a Qt4 book ^^ But I really lack of freetime.

But my idea was a bit more selfish : I'm a Linux user and Windows developer never (or nearly never) care about other platforms... so, I'm planning to write (when?) a Linux-only converter.
The main issue is that I didn't find any good documentation about ffmpeg. And mplayer is kind of strange thing to use since there is no API o_O'.
If you like, I found a Qt4 widget using ffmpeg for playing video (but didn't try it).

Anyway, D2 not only supports 4:3 videos. I have encoded several videos in wide format without adding any black bars and it works like a charm.

To finish, if you wan't a French translator for your GUI, don't hesitate to ask me ;)
(Once it's more or less definitive please).

JIMBOAthens
02-15-2008, 04:56
Nice and simple interface. I think it is worth trying to release it as soon as possible!

Boboakley
02-15-2008, 06:30
Terrific interface, explains everything that's going on every step of the way. Beautifully designed as well.

But I have yet to find an mencoder-based app that outputs a movie file that stays in sync on my 4GB D2. I've tried iRiverter, Kawaiiriver, Super, Vidrop, D2video, and the mencoder command line itself. None of them produced a video that plays properly on my D2. The closest is iRiverter with an audio delay factor. So you might want to add an option to offset audio-video sync like iRiverter has.

Only iLove, which uses both mencoder and ffmpeg (but don't ask me how :) and JetAudio Converter, which uses 'ffmpeg_vx.exe' for the conversion, can create a rock-solid-synced output for the D2.

Thanks for your hard work -- looking forward to trying it out!

profoX
02-15-2008, 16:22
please build a mac version. i would like to use both my pc and my powerbook. don't like being limited to just one.
If you want a mac release, I'll have to find a Mac maintainer: somehow who can compile Qt 4 applications on Mac and (if needed) tweak the application a little bit and package it. I don't have a Mac myself so I can't do that myself :(

But my idea was a bit more selfish : I'm a Linux user and Windows developer never (or nearly never) care about other platforms... so, I'm planning to write (when?) a Linux-only converter.
Linux is all about freedom, and freedom also means having freedom of choice. I don't want to limit anyone from using my application, and because Qt offers such a great cross-platform framework, it would be a waste to use it to create Linux-only applications. I also work on Linux only, but I have a Windows 2000 (license from school) running in a virtual machine in Virtualbox which I use to compile Qt apps for Windows.

The main issue is that I didn't find any good documentation about ffmpeg. And mplayer is kind of strange thing to use since there is no API o_O'.
If you like, I found a Qt4 widget using ffmpeg for playing video (but didn't try it).
My current implementation is not based upon ffmpeg, but only on mplayer and mencoder. You are right, they don't have an API, but I use QProcess and some smart SIGNAL/SLOT connections to drive mplayer/mencoder behind the scenes. I don't think that I can use that ffmpeg-widget in this project, but I'd like to take a look at it anyway (I drive mplayer with the -wid option to display video on one of my widgets for the preview)

Anyway, D2 not only supports 4:3 videos. I have encoded several videos in wide format without adding any black bars and it works like a charm.
Interesting. I thought it didn't support that (I read it somewhere..) I'll try that out. It will only make things easier for me then :)

To finish, if you wan't a French translator for your GUI, don't hesitate to ask me ;)
(Once it's more or less definitive please).
I will. Thanks for your offer.

By the way, you are also welcome to join the development 'team' if you want. I'm not putting my code public yet because there's not much actual useful code yet, but in a few weeks I'll probably push my code in subversion somewhere. Maybe this is a good way to learn Qt 4 better ;) at least, that's how I learnt it... I just started hacking on Qt 4 / C++ apps without knowing too much about it all. You will need at least a basic knowledge of C++ though. But I wouldn't care about helping you getting started.

Terrific interface, explains everything that's going on every step of the way. Beautifully designed as well.

But I have yet to find an mencoder-based app that outputs a movie file that stays in sync on my 4GB D2. I've tried iRiverter, Kawaiiriver, Super, Vidrop, D2video, and the mencoder command line itself. None of them produced a video that plays properly on my D2. The closest is iRiverter with an audio delay factor. So you might want to add an option to offset audio-video sync like iRiverter has.

Only iLove, which uses both mencoder and ffmpeg (but don't ask me how :) and JetAudio Converter, which uses 'ffmpeg_vx.exe' for the conversion, can create a rock-solid-synced output for the D2.

Thanks for your hard work -- looking forward to trying it out!
Thanks for your positive comments. Do you have syncing problems with every video? Currently I use mencoder manually to create movies for my D2 and I haven't experienced any syncing problems. What is the problem with audio/video sync anyway? Sync going wrong after playing a while or the offset being wrong the whole movie through?

I will start off by using mencoder only. If I - or any of you - experience any problems with syncing, I will talk to the author of iLove (or check his sourcecode) to find out how he does everything. I'll probably have to encode audio and video seperately using mencoder and mux with ffmpeg then. In any case, I would also use both mencoder and ffmpeg, because ffmpeg in itself is not advanced enough. With mencoder I can add in a lot of post-processing video filters and nice subtitles :)

Thanks for all comments so far!

PS: another question I was wondering about: does the D2 support resolutions > 320x240 and if so, which resolutions, and does it support it with all firmware or not?

Temet
02-15-2008, 17:23
Hello profoX!

Concerning the widget, I saw it here : http://forum.qtfr.org/viewtopic.php?id=3753
It's a french forum but you can download the source "gm.zip" at the end of the first post.

Concerning playing videos that are not 4:3, maybe there are some limitation on the height. But I have 3 trailers on my D2 working like a charm in widescreen format (2 vids at 320x136 and one at 320x180, all working).
I never tried vids with resolution > 320x240.

I really thank you for your offer!!! But I have very few time and I think I may disappoint you more than help you... even if I have some very basic skills (I'm not a developer) : I did a C++/MFC app some years ago, then converted in Java when I swithed to Linux and also a basic kicker applet. What is funny is that the C++/Java app I did was a manager for my old mp3 player! ;)

By the way, if you have to search for parameters for encoding a video for D2 with mplayer and ffmpeg, you may be interested in a small script I personaly use to convert my vids : http://goondy.free.fr/d2

Good luck!

PS : as I'm a Gentoo user, I will probably write (and share) an ebuild to install the software ;)

EDIT : It's possible that Qt4.4 provides a video player widget, based on phonon. I'm not sure about this but I think it's at least in the roadmap of Qt ;)

profoX
02-15-2008, 20:14
Concerning playing videos that are not 4:3, maybe there are some limitation on the height. But I have 3 trailers on my D2 working like a charm in widescreen format (2 vids at 320x136 and one at 320x180, all working).
I never tried vids with resolution > 320x240.
You're right. It works for me too. Okay, then I'll just make it an option to either crop the video or keep the video widescreen with black bars (without adding them myself).

By the way, if you have to search for parameters for encoding a video for D2 with mplayer and ffmpeg, you may be interested in a small script I personaly use to convert my vids : http://goondy.free.fr/d2
And how well does that work? I myself use something like this right now, which seems to work just fine: mencoder -ofps 23.976 -ovc xvid -oac mp3lame -lameopts cbr:mode=0:br=192 -fontconfig -font {sub_font} {sub_options} -xvidencopts bitrate=$vid_bitrate:vhq=4:me_quality=6:max_bframe s=0:max_key_interval=5 -af resample=44100 -srate 44100 $subtitle $subcp -vf ${crop}scale=$resolution -ffourcc XVID -idx -o "$d2name" "$file"
It is based on the script I found here: http://raze-overdrive.livejournal.com/10456.html

EDIT : It's possible that Qt4.4 provides a video player widget, based on phonon. I'm not sure about this but I think it's at least in the roadmap of Qt ;)
Yea. I know. I've seen the Tech Preview too :) It will be in 4.4 and is based on GStreamer for Linux, DirectShow for Windows and QuickTime for Mac. But I'm using mplayer directly now. The preview feature wouldn't work as well without mplayer anyway, because I wouldn't have the same features for subtitling, filtering etc. So I'm going to keep it with mplayer for the preview widget right now. The basic preview is already working that way :) (and also, I'm not waiting before Qt 4.4 final is released..)

PS: Is that Frank the Bunny from Donnie Darko in your avatar? I love that movie!

oskarthunberg
02-15-2008, 20:34
You're right. It works for me too. Okay, then I'll just make it an option to either crop the video or keep the video widescreen with black bars (without adding them myself).

Would it still be possible to have the subtitles show in the black field of the screen? Personally, I like it when the subtitles does not interfere with the picture. It would be nice with an option to put one thicker black bar in the bottom of the screen (and non above the picture).

profoX
02-15-2008, 21:08
Would it still be possible to have the subtitles show in the black field of the screen? Personally, I like it when the subtitles does not interfere with the picture. It would be nice with an option to put one thicker black bar in the bottom of the screen (and non above the picture).
I did a test, and yes, this should be possible with mplayer's -vf expand, so I will try to include an option to add subtitles in a black bar above or under the video in the subtitles tab page.

Boboakley
02-15-2008, 22:59
Thanks for your positive comments. Do you have syncing problems with every video? ... What is the problem with audio/video sync anyway? Sync going wrong after playing a while or the offset being wrong the whole movie through?

Mencoder-only videos behave badly on my 4GB D2. They start off in sync and gradually fall off -- unless you skip ahead or behind, in which case the sync slips WAY off...

I wonder whether different firmware revs have an effect on the D2's A/V sync capabilities. I'm using 2.50 and haven't found a compelling reason to upgrade. On the contrary, I've seen lots of reasons to stay put because what I have works...[wink] and certain 'upgrades' don't.

At any rate, I've posted queries in different threads (and started one of my own) (http://iaudiophile.net/forums/showthread.php?t=19608) asking if it has been demonstrated that different FW revs produce different A/V sync results, but have received only one reply. Perhaps that's an avenue that needs exploring...

... I will talk to the author of iLove (or check his sourcecode) to find out how he does everything. I'll probably have to encode audio and video seperately using mencoder and mux with ffmpeg then...

Yes I recall a quote from elviselvis that he does encode with mencoder and then muxes with ffmpeg, but he posts in a lot of threads and I can't seem to find the exact quote or I'd link to it. Sorry. But I suppose you can find most of what you need to know about iLove if you browse his main thread here. (http://iaudiophile.net/forums/showthread.php?t=15620)

Good luck with your project!

oskarthunberg
02-16-2008, 04:36
I did a test, and yes, this should be possible with mplayer's -vf expand, so I will try to include an option to add subtitles in a black bar above or under the video in the subtitles tab page.

That's great!

Temet
02-16-2008, 06:54
And how well does that work?
In fact I use ffmpeg most of time. I used mencoder only twice for vids that ffmpeg refused to encode o_O'.
If I remember well, I had to make many tries in parameters to find one with a proper a/v sync.
You know what, I will try to encode with mencoder an episode of a serie and see the result. I update you since I know ;)

Yea. I know. I've seen the Tech Preview too :) It will be in 4.4 and is based on GStreamer for Linux, DirectShow for Windows and QuickTime for Mac. But I'm using mplayer directly now. The preview feature wouldn't work as well without mplayer anyway, because I wouldn't have the same features for subtitling, filtering etc. So I'm going to keep it with mplayer for the preview widget right now. The basic preview is already working that way :) (and also, I'm not waiting before Qt 4.4 final is released..)
Yep, you're right ;)

PS: Is that Frank the Bunny from Donnie Darko in your avatar? I love that movie!
Yes, it's Frank ;)
I love the movie too and I'm a bit disapointed that "Southland Tales" has never been released in theater here in France.
I have to wait the DVD to see it :'(

EDIT : gasp, with mplayer encoding I have a small pb of a/v sync, maybe 0.2 or 0.3 second...

elviselvis
02-16-2008, 08:37
Hi, i`m author of iLove. Here is guide how to make videos for D2 with correct A/V synchronization.

You need Mencoder and FFmpeg.

First we get information about video: (this step is optional)
"C:\mencoder.exe" "C:\inputvideo.mp4" -o NUL -endpos 0:0:0:1 -oac pcm -ovc copy

(in this guide i presume that source video have framerate 29.969 fps, and you have quad-core processor, we will improve gamma by 30 % and sharpness by 50%)

First we will convert only video:
"C:\mencoder.exe" "C:\inputvideo.mp4" -o "C:\Temp\temploraryoutputvideo.cmp" -fps 29.969 -lavdopts threads=4 -of rawvideo -ovc lavc -oac pcm -lavcopts vqscale=4:vrc_maxrate=2000:vrc_buf_size=500:vqmin= 1:threads=4:vcodec=mpeg4:me_range=24:last_pred=4:v max_b_frames=0:mbd=2:v4mv:trell:cbp:mv0:mv0_thresh old=0:preme=2:precmp=6:cmp=6:subcmp=6:dia=2:predia =2:subq=8:vlelim=-4:vcelim=7:vqcomp=1.0:mpeg_quant -vf eq2=1.3:1.0:0.0:1.06:1.0:1.0:1.0:0.955,unsharp=l5x 5:0.5,scale=320:-2:::10:10::2:1,crop=:240,harddup -sws 9 -zoom

Then we will convert only audio:
"C:\mencoder.exe" "C:\inputvideo.mp4" -o "C:\Temp\temploraryoutputaudio.mp3" -fps 29.969 -lavdopts threads=4 -of rawaudio -ovc copy -oac mp3lame -lameopts q=3:aq=0:vbr=2:mode=0

Then we will join audio and video in FFmpeg:
"C:\ffmpeg.exe" -vcodec copy -acodec copy -r 29.969 -async 192000 -vtag XVID -threads 4 -i "C:\Temp\temploraryoutputvideo.cmp" -i "C:\Temp\temploraryoutputaudio.mp3" "C:\finalvideo.avi"

Ok thats all. If you have any guestions feel free to ask me at iLove`s thread

profoX
02-16-2008, 21:40
Thanks for your input, elviselvis,
I will take that into account if I see any syncing problems.

I have done an initial import of my sources into a Bazaar branch (it's a versioning system) and I have also registered the project on Launchpad: https://launchpad.net/d2vid/

So you are free to check out the sources... but please be aware that the application is actually pretty useless right now, as the actual encoding doesn't work yet.

Right now, this is what's working:

Basic analysis of input files (find available audio tracks)
Directory/file autocompletion for all input text fields
Basic previewing of video files is working

Linux version (Using Qt 4 Cleanlooks style in KDE 3.5)
http://85.17.105.113/~wesley/images/d2vid_9.png

Windows version (Using default Windows style in Windows 2000 in Virtualbox)
http://85.17.105.113/~wesley/images/d2vid_10.png

I have tested everything so far on Linux and Windows. The Windows version has a small graphical glitch during playback in the preview tab page: if you move your cursor over the video and back out you might see a little flash, which is annoying, but don't worry, because I'll figure out a fix for that before 0.1 is released.

Of course it's still far from finished. In the next few days/weeks, I will improve the Preview functionality and I will start on making the other tabs work for the preview. After that I'll probably start with the actual code to perform the encoding :)

elviselvis
02-17-2008, 03:19
profoX:
It takes me approximately 12 months to make iLove usable (now only thing which rest is Windows Vista support), i make it from scratch without any programming knowledges (it is my first application which i ever did, maybe that is the reason why it looks originaly because i using things in way in which it wasnt intended for). Now it have 9000 lines of code (+ 1000 in visual packages). First i thought that it will be easy to develop it but when i released first public version then users start reporting bugs and bugs and bugs ... I can give you advice - release new versions only if you will be sure that everything is bugless or your head will explode from users [biggrin].

Haydn
02-17-2008, 03:56
I am also an Ubuntu user and i use iriverter to convert my D2 vids. I like iriverter's simplicity but unfortunely it doesn't multithread.

Your roadmap looks very promising and thanks for your efforts.

If you need a Turkish translator let me know.

profoX
02-17-2008, 09:40
profoX:
It takes me approximately 12 months to make iLove usable (now only thing which rest is Windows Vista support), i make it from scratch without any programming knowledges (it is my first application which i ever did, maybe that is the reason why it looks originaly because i using things in way in which it wasnt intended for). Now it have 9000 lines of code (+ 1000 in visual packages). First i thought that it will be easy to develop it but when i released first public version then users start reporting bugs and bugs and bugs ... I can give you advice - release new versions only if you will be sure that everything is bugless or your head will explode from users [biggrin].
It's great that you put so much time and effort into it then! I see that you use Pascal.. Unfortunately, I only have little experience with that. My application will support Windows Vista out of the box, thanks to the Qt 4 toolkit. If you're interested in learning a bit about C++/Qt 4 (it's not thàt different from Pascal, really, a lot of stuff is actually way easier because of Qt 4) we could maybe join forces and make this application the next iLove? (But let's talk about that after my 0.1 release..) Because this thing will run on pretty much any computer (Windows, Linux, Mac, Solaris, BSD...)

About the bugs: I have already opened up Launchpad and a public repository, but I will NOT accept bugreports yet. Bugreports will be ignored or removed. Simple as that. This software is not ready yet for bugreports. I will start accepting bugs when the 0.1 release is nearing (when the application goes béta)

I am also an Ubuntu user and i use iriverter to convert my D2 vids. I like iriverter's simplicity but unfortunely it doesn't multithread.

Your roadmap looks very promising and thanks for your efforts.

If you need a Turkish translator let me know.

I'm trying to obsolete iRiverter by making my application faster, more memory-efficiënt and with better features (like the preview) and of course I will try to add multithreaded encoding, but maybe that'll have to wait for the 0.2 release, because mencoder (the Ubuntu version) is compiled with a libxvid version that does not support multithreaded encoding, and I have to find a way around that.

Thanks for the translation offer! Translation support is only planned for the 0.2 version for the simple reason that I didn't take my time to tag my strings for translation support. However, adding all the tags (and thus adding translation support) shouldn't take much more than 10 minutes of work, so maybe I'll put that in 0.1. I'll let you know.

TedJ
02-17-2008, 18:56
Another reason to keep the "pad to 4:3 letterbox" option is this appears to be the only way to have the output appear correctly using the TV out... not something I use often I'll admit, but nice to know.

Regarding the oft reported A/V sync issues with mencoder, I remember reading somewhere that this is due to an issue with the muxing code on the last stable release... have you tried with a recent CVS snapshot? Of course, I do remain the right to be completely mistaken on this. [biggrin]

elviselvis
02-18-2008, 12:01
... but maybe that'll have to wait for the 0.2 release, because mencoder (the Ubuntu version) is compiled with a libxvid version that does not support multithreaded encoding, and I have to find a way around that.

try to not use xvid in mencoder, its implementation in mencoder is retarded as hell, try use vcodec=mpeg4 instead of vcodec=libxvid, it is libavcodec`s implementation of DivX 5, it is approximately 10-20x faster and can use threads!!!! (tested on my quad-core Intel Core 2 processor, all 4 processor are used at 80% with vcodec=mpeg4). Xvid in mencoder also dont support maximal bitrate limit and quality is the same, only you have to tweak settings, like this:
-lavcopts vqscale=4:vrc_maxrate=2000:vrc_buf_size=500:vqmin= 1:threads=4:vcodec=mpeg4:vmax_b_frames=0:mbd=2:v4m v:trell:cmp=3:subcmp=3:vlelim=-4:vcelim=7:vqcomp=1.0:mpeg_quant -lavdopts threads=4
with these settings optimized for quality it is extremely fast in comparsion with xvid, but here are more faster settings optimized for speed:
-lavcoptsvqscale=4:vrc_maxrate=2000:vrc_buf_size=50 0:vqmin=1:threads=4:vcodec=mpeg4:vmax_b_frames=0:v qcomp=1.0:mpeg_quant:turbo
-lavdopts threads=4

It's great that you put so much time and effort into it then! I see that you use Pascal.. Unfortunately, I only have little experience with that. My application will support Windows Vista out of the box, thanks to the Qt 4 toolkit. If you're interested in learning a bit about C++/Qt 4 (it's not thàt different from Pascal, really, a lot of stuff is actually way easier because of Qt 4) we could maybe join forces and make this application the next iLove? (But let's talk about that after my 0.1 release..) Because this thing will run on pretty much any computer (Windows, Linux, Mac, Solaris, BSD...)
You know ... main reason why i started making iLove was because there in that time wasn`t any GUI for mencoder optimized directly for Windows - i mean optimized in way to make it`s contol easyiest for user, like:
- using mousewheel to adjusting sliders and edits(updown buttons)
- correction of keyboad input, in edit if you press $ key then it will insert 4 instead (this is good for non-english keyboard, if i allways switching between english and czech keyboard with ALT+TAB)
- like rolling application`s window down(you can use it then as widget because application`s window became extremely small))
- monitoring folder in computer for changes for automatic conversion (surprisingly this is problem in Windows, because all functions in Windows which deliver this are buggy and you have to write your own solution which is extremely complex)
- optimized size of contols (buttons, sliders, lisboxes, dividers) directly for Windows to be the smallest as possible (surprisingly this is also big problem, because each theme in windows have different size of controls, the same problems are between operation systems), i want to have application`s window small as possible, without ANY gap/interspaces, and everything centered correctly

... tell me how to make all these features (which i realy need and which i using) make multiplatform? It will be huge problem and most probably unsolvable. It think that it is better make one thing in best quality than making lot of things in standard quality (aka windows only vs. multiplatform)... And in addition im now at university at bachelor studies, i have only time to debugging of iLove and no more, sorry - sometimes i don't have time even at debugging. But if you need anything, feel free to write me.

profoX
02-18-2008, 17:14
try to not use xvid in mencoder, its implementation in mencoder is retarded as hell, try use vcodec=mpeg4 instead of vcodec=libxvid, it is libavcodec`s implementation of DivX 5, it is approximately 10-20x faster and can use threads!!!! ...
Interesting. I will do some benchmarks and will choose something based on that. With that implementation I will probably have av sync issues anyway with just mencoder, but I guess I can take another page from your book and use ffmpeg for the muxing. But I have to find a way to do as many things at the same time as possible.. audio and video encoding in separate threads and muxing through some sort of direct file pipe, but that'll obviously cause some problems with specific files... Food for thought! Of course priority #1 is that it works perfectly, but I care about the total speed too. Having to encode audio and video seperately, and then having to mux them in the end... Oh well.. I'll think about that some more.


... tell me how to make all these features (which i realy need and which i using) make multiplatform? It will be huge problem and most probably unsolvable. It think that it is better make one thing in best quality than making lot of things in standard quality (aka windows only vs. multiplatform)... And in addition im now at university at bachelor studies, i have only time to debugging of iLove and no more, sorry - sometimes i don't have time even at debugging. But if you need anything, feel free to write me.
Most of that stuff is easy to implement using Qt 4, actually. Although I don't see good use cases for all those things. I suppose our ideas/tastes about a GUI differ a lot. I like big clear buttons and a logical way to separate the functionality (using tabs for example) and you like really small controls all in one window. Thanks for all your help/support though. You're a great guy.

profoX
02-18-2008, 17:28
... have you tried with a recent CVS snapshot? Of course, I do remain the right to be completely mistaken on this. [biggrin]
Yes. I compile my own mplayer/mencoder from svn. I haven't noticed big a/v sync issues in the current way I encode my video yet.. although maybe a (hardly noticeable) 0.1 / 0.2 second audio or video delay with some files.. I'll probably try some more things until it always works great. And if I have to use ffmpeg for the muxing, so be it. I don't care, as long as it eventually works well.

- - - - - - - -

By the way, current state: Today I have worked on the preview page a bit and I have implemented seeking buttons and made the slider work (which is harder than you think to get right because it's volatile and I had to create some scary code, as you can see here (http://codebrowse.launchpad.net/~wesley/d2vid/main/annotate/wesley%40ubuntu.com-20080218232505-kecdjtbkqh00xaaz?file_id=previewslider.cpp-20080218232500-39vi8gs9gk7ypskq-1))
Next up: make the subtitle/audio selection and subtitle options take effect on the preview page

elviselvis
02-19-2008, 14:43
Will be supported Cowon A3? If yes then i have feature request: checkbox "do not upscale", this is good for A3 because its resolution is 800x480, so videos from youtube (320x240) can look very ugly if are stretched to 640x480. I tryed to implement this into iLove and i working 3 days on it and i`m in 10% because it had to rewrite whole system of aspect ratios. Maybe you will be more succesful [biggrin]

profoX
02-19-2008, 23:25
Will be supported Cowon A3? If yes then i have feature request: checkbox "do not upscale", this is good for A3 because its resolution is 800x480, so videos from youtube (320x240) can look very ugly if are stretched to 640x480. I tryed to implement this into iLove and i working 3 days on it and i`m in 10% because it had to rewrite whole system of aspect ratios. Maybe you will be more succesful [biggrin]
Version 0.1 and 0.2 will only work for the D2, but I want to add advanced profile support for version 0.3 to support more devices and random output formats.

I don't know what you're saying with the upscaling though. What does "do not upscale" mean? Does that mean that you want the video to keep the 320x240 resolution? Or does that mean that you want to add black bars around the video until it reaches 80x480, or what?

elviselvis
02-20-2008, 11:45
Version 0.1 and 0.2 will only work for the D2, but I want to add advanced profile support for version 0.3 to support more devices and random output formats.

I don't know what you're saying with the upscaling though. What does "do not upscale" mean? Does that mean that you want the video to keep the 320x240 resolution? Or does that mean that you want to add black bars around the video until it reaches 80x480, or what?
I give you two examples:

1) For example i set maximal final resolution to 800x480 (this A3`s resolution have aspect 5:3) and check "do not upscale" checkbox, and uncheck the checkbox "crop video to fill whole screen", then insert first video with resolution 1920x1080 (16:9), and final video will be 800x450(16:9), then i insert second video with resolution 320x240(4:3) and final video will be 320x240(4:3)

2) For example i set maximal final resolution to 800x480 and check "do not upscale" checkbox, and check the checkbox "crop video to fill whole screen", then insert first video with resolution 1920x1080 (16:9), and result video will be 800x480(5:3), then i insert second video with resolution 320x240(4:3) and final video will be 320x192(5:3)

(note: you dont have this checkboxes in your application, they are imaginary)

frankmulder
02-28-2008, 16:18
Looks like an awesome program! Maybe it will even support my X5 in the future. [smile] Keep up the good work, profoX! [thumbsup]

LariBum
03-02-2008, 07:59
When is the first Release? [smile]

profoX
03-02-2008, 08:45
elviselvis: not sure what you mean, but I'm planning to incorporate an very user-friendly cropping feature in the future..

frankmulder: it will, in the future.. actually, the plan is to create an encoding software that can be used for a lot of things, not just portable media devices, but with profile support, so that you can use a D2 or X5 profile too, and have only the relevant options for that profile in front of you

LariBum: not sure, as I'm a bit busy right now with a lot of things.. I haven't worked on D2Vid for a week because of that

Popcorn
03-02-2008, 17:23
I have to say this new program looks AWESOME! I like the look of it. The tabs, and the way it appears to be easy to use and understand. Hopefully you will also have in future versions a Clix2 profile.

Also, how long will it take to convert a 2 hour movie? I have been using iLove which is fabulous, but it is slow - about 3 hours to do a movie upwards of 2 hours.

elviselvis
03-02-2008, 19:00
I have to say this new program looks AWESOME! I like the look of it. The tabs, and the way it appears to be easy to use and understand. Hopefully you will also have in future versions a Clix2 profile.

Also, how long will it take to convert a 2 hour movie? I have been using iLove which is fabulous, but it is slow - about 3 hours to do a movie upwards of 2 hours.

Both applications are based on Mencoder, so speed must be the same. To run iLove at full speed enable TURBO (button have to be clicked down) and set Gamma and Sharpen to 100 %(so it will be disabled). With this settings it run at 68 fps at my 1400 mhz laptop, so 2 hours movie will be in 50 minutes.

Popcorn
03-03-2008, 08:35
But will that reduce quality that will be visible while watching on either D2 or Clix?

profoX
03-05-2008, 16:18
JONES129: The plan is to support more devices through profiles yes, but that won't happen in the near future. I first want to get basic encoding working for the D2 only. Unfortunately I'm short on time to work on this app a lot.

Concerning encoding speed: I will use mencoder for encoding and ffmpeg for muxing. The encoding is threaded and video and audio encoding is done simultaneously (threaded) as well, although it doesn't really make that big of a difference on most computers (I've run some tests)

I will provide a few optimization settings to optimize either speed or quality. I've actually had VERY fast encodes with certain settings, but of course it will reduce the video quality a bit.

Without post-processing, and when doing 1 pass encoding, and when threading everything, it shouldn't take too much time to encode a movie.

I will certainly benchmark my app against JetAudio and iRiverter when it's done.

elviselvis
05-03-2008, 11:29
any progress? [cool]

davidw89
05-04-2008, 06:12
I wonder whether this will supplement iLove or compete against it : D

fire1ce
05-04-2008, 08:22
wow good job man! i really support your project!

elviselvis
06-08-2008, 16:12
I`m just learning basics of C++. What system (or library or whatsoever...) do do using for multithreading (= paralel programming)? What is your opinion on OpenMP? http://openmp.org/wp/about-openmp/

Jacques La Fey
06-09-2008, 07:44
If audio compatibile with D2 do not transcode ...

If audio higher then 44.1 kHz change to 44.1 kHz ...

If fps changed, change subtitles fps ...

laropo
07-06-2008, 03:17
Too bad the OP has not been seen since May, seems like yet another (http://iaudiophile.net/forums/showthread.php?p=190008) user is in need of this program....