Dear video users,
I am pleased to announce the public availability of QtlMovie, a simple specialized graphical front end to FFmpeg using the Qt framework.
Why another front-end to FFmpeg? So many different ones already exist.
QtlMovie is NOT a general-purpose GUI for FFmpeg, interfacing its rich set of options and filters.
Instead, QtlMovie only performs a few repetitive specialized tasks which proved to be difficult or boring with other tools. In short, I developed QtlMovie primarily for my own usage to automate tasks which took me too long and I now share it.
So, what is QtlMovie for?
It is mostly the answer to the following needs:
Sounds reasonable? Yes. Or at least I thought so.
- I am a movie fan and want to watch movies exclusively in original audio version with subtitles when necessary.
- I record many movies from TV (digital TV and MPEG-converted analog recordings) as well as collect other movie files and I want to create DVD's out of them.
- I own an iPad and many DVD's and want to watch those DVD's on the iPad.
Sounds simple? Not so simple in fact. Before developing QtlMovie, I needed to use a dozen different tools depending on the type of input and output files: MediaInfo (always a good starting point), AviDemux, ProjectX, VirtualDub, MediaCoder, DVD Decrypter, VOB Merge, DeeVeeDee, Nero, several more or less functional subtitle conversion tools and, for desperate cases, a good old long ffmpeg command line. None of these tools could be removed from the toolbox. There was always a specific case (mostly because of the subtitle formats hell) where one of them was necessary. See some more on that below. Note that I only mention free tools. There may be some magic and expensive tools which do what I want but I am simply not interested.
This is why I deciding to unify all of them behind a common GUI which interfaces (but does not hide) ffmpeg and other command line tools. FFmpeg is the key tool which does most of the work. But additional tools are added to extract Teletext subtitles or create DVD file systems and media. A log window shows the generated commands and their output. To
understand why QtlMovie can be useful, the log window shows no less than 10 successive commands to generate a DVD media from a TV recording containing Teletext subtitles.
Using QtlMovie: Basically, the main workflow of QtlMovie is the following
Why is this complicated ?
- Open a movie file of any type, including DVD file structures, with any combination and formats of audio, video and subtitles.
- Five clicks: 1. select video track, 2. select audio track, 3. select subtitle track, 4. select output type, 5. start. All selections use simple radio buttons in one single window (no complex menus, no drop-down or combo boxes, etc.)
- Everything is automated to create either a DVD (MPEG file, ISO image or burn the media, your choice) or an iPad movie file. The resulting output media is basic and simple: one video track with hardcoded subtitles, one audio track, that's all (no menu, no track selection).
Interestingly, although the most complex technical task, the video and audio transcoding was never a problem. Most tools handle that gracefully, mostly thanks to back-ends like FFmpeg and its libraries.
Here is a list of some technical difficulties I had to face. No traditional tool can manage them all, I needed a combination of tools. And when a solution existed in a tool, I needed to select multiple options and make some calculation each time. I hate to repeat the same or (worse) similar operations when a technical solution could exist to automate them.
Well, enough is enough. I just wanted to open a file, 5 clicks, go for a coffee (or a "magret de canard") and later collect my DVD media or iPad movie. So I developed QtlMovie.
- Video size, display and pixel aspect ratio. Example: Considering an input video size 1280x536 with pixel aspect ratio 1:1. How do you resize and pad it to obtain a DVD video with size 720x576 and display aspect ratio 16:9? Need some simple but boring math every time.
- Identification of audio and subtitle language and properties (standard, forced, for hearing/visual impaired). VOB files from DVD do not carry this information. You have to analyze the .IFO file for that. With some tools, the properties are not clearly reported, making the selection decision more difficult.
- Text subtitles. Which format: SRT, SSA, ASS. Which source: a stream in the input file or an external file. How to burn them in the video. AviDemux is mostly OK but unreliable, its support for SRT vs. ASS keeps changing with versions and I faced repeated and irritating crashes.
- Teletext subtitles (common in DTTV and IP-TV). The only GUI which can extract them is ProjectX. But it works only on MPEG transport stream files and its GUI is complex and counter-intuitive.
- Bitmap subtitles (DVD and DVB) position and size. The video and subtitle frames have sometimes distinct sizes and overlaying them needs some manual adjustments (after hours of nervous breakdown the first time, trying to figure out why those damn subtitles did not show up).
- DVD subtitle colors. The VOB files from a DVD contains bitmap subtitles without any color information. The result is ugly and barely watchable subtitles in the video. You have to dig into the .IFO file in the DVD to extract (and convert) the color palette for the subtitle.
- And other difficulties I have now forgotten.
QtlMovie is a not a sophisticated tool. It does not manipulate video and other complex bitstreams. It simply synchronizes the work of other excellent and complex tools such as FFmpeg. But "simply" is exactly the word that was missing and I hope that QtlMovie will bring it to you.
QtlMovie is open source and released under the BSD license. It is developed in C++ using Qt 5 and should work on any platform supporting Qt 5, ffmpeg and the other media tools. QtlMovie is primarily developed on Windows but
is also tested on Linux.
QtlMovie is available on SourceForge at http://qtlmovie.sourceforge.net/
The source code is available both as one archive file per version and as a git repository.
Binary installers for 32-bit and 64-bit Windows are available. These binary installers come pre-packaged with recent versions of ffmpeg, ffprobe, dvdauthor, telxcc, mkisofs and growisofs so that they are self-sufficient for end users.
Please report problems using the ticket tracker on the project page at https://sourceforge.net/projects/qtlmovie/
A discussion forum is available. Anonymous postings are enabled but will be moderated first. Registered users of SourceForge may post without restriction.
Acknowledgements: I would like to thank the authors of ffmpeg, dvdauthor, telxcc, mkisofs and growisofs. They developed great tools. QtlMovie is just providing the glue...
-Thierry
Try StreamFab Downloader and download from Netflix, Amazon, Youtube! Or Try DVDFab and copy Blu-rays! or rip iTunes movies!
+ Reply to Thread
Results 1 to 30 of 59
Thread
-
-
I afraid that it's too simplified, even for an idiot who wants to choose between NTSC and PAL for an output.
-
Living in PAL world so ...
I though this an interesting front end so I did some test
Input MKV/h.264 720p/AC-3 - 2 embedded SRT/UTF-8 subtitles + 1 external SRT/UTF-8
Output DVD MPEG File
1) x86 Windows Vista
Drag-drop filled the input field for Input File/Subtitles - however didn't activate them. Had to Browse.
Used external subs and encoded all-right with nice-looking hardcoded subs. Bitrate 2.5 Mb/s instead of target 4 Mb/s
2) x64 Win 8
Used internal sub. OK. Bitrate 4 Mb/s
3) x64 Win 8
Used external sub. No subtitles hardcoded
4) x86 Windows Vista
Used external subs. Hardcoded subs OK
5) x86 Windows Vista
Messages:
Error getting version for Telxcc: Process exceeds execution time limit
Error getting version for FFprobe: Process exceeds execution time limit
Error getting version for FFmpeg: Process exceeds execution time limit
FFprobe error: Process exceeds execution time limit
Will wait for an update. -
Thank you for trying QtlMovie.
I only have a x64 Win 7 system for testing (do not have a full test lab at home...) so it is difficult for me to replicate x86, Vista or Win 8 tests.
To fix your issues, I need to replicate them or at least characterize them a bit more. Could you please provide the log for each test? The best way is to do that is:
Before starting the test:
- Clear the log (Menu Tools / Clear Log)
- Activate debug (Menu Tools / Log Debug, although it does not log much in fact).
After the test:
- Save the log in a text file (Menu Tools / Save Log)
And post the description of the problem and the log either in this forum or preferably in QtlMovie issue tracking system (https://sourceforge.net/p/qtlmovie/tickets/)
It could be helpful also to provide your video and subtitle file for download, although I guess they can be huge.
Bitrate 2.5 Mb/s instead of target 4 Mb/s
Drag-drop filled the input field for Input File/Subtitles - however didn't activate them. Had to Browse.
Messages:
Error getting version for Telxcc: Process exceeds execution time limit
Error getting version for FFprobe: Process exceeds execution time limit
Error getting version for FFmpeg: Process exceeds execution time limit
FFprobe error: Process exceeds execution time limit
ffmpeg -version
telxcc -h
These are the commands which are launched by QtlMovie to obtain the version of the tools.
Thanks,
-Thierry -
I just posted the version 1.2.1 which can now create NTSC DVD's.
In the settings, there is now a PAL vs. NTSC option to specify the format of the created DVD's.
Thanks for reporting this missing feature.
-Thierry -
To videobruger: I was directed on a YouTube video which exhibits some of the problems you mention. I had some difficulties to get the sound right (was very low), but I think I got most of it. Thank you for taking the time doing this.
Drag-drop filled the input field for Input File/Subtitles - however didn't activate them. Had to Browse.
Used external sub. No subtitles hardcoded
In all other cases in the video, you edited, browsed or clicked in a subtitle selection button before start. The bug did not appear in these circumstances and you got the subtitles.
Bitrate 2.5 Mb/s instead of target 4 Mb/s
Maybe hardcoding 2.5 Mb/s is a little bit too authoritarian. I will consider adding it in the global settings (but not on a per-video basis to keep the GUI as simple as possible).
Additionally, as a troubleshooting method, you may check the generated ffmpeg command (log window). The option “-b:v” specifies the target video bitrate. So you should see “-b:v 4000000” for a DVD and “-b:v 2500000“ for an iPad. But for MPEG-2 video (DVD), ffmpeg sometimes uses a lower bitrate than specified if it decides that a higher bitrate is unjustified for the input video. QtlMovie cannot do anything about it.
Messages:
Error getting version for Telxcc: Process exceeds execution time limit
Error getting version for FFprobe: Process exceeds execution time limit
Error getting version for FFmpeg: Process exceeds execution time limit
FFprobe error: Process exceeds execution time limit
ffmpeg -version
telxcc –h -
I just released version 1.2.2 to answer the reported issues.
Change log:
Code:- Bug fix: When a file was dragged/dropped into the edit box for input file, output file or subtitle file and not otherwise edited, the application was not properly notified and the file was ignored. - Added settings to specify the video bitrate for iPad. The default value remains 2.5 Mb/s. - Added settings to specify the iPad screen size (iPad 1/2/mini vs. iPad 3/4). - Windows installer now intergrates official telxcc v 2.5.1 (required to support M2TS files, previous version of QtlMovie used a patched version of telxcc).
-
Version 1.2.3 is out there.
Change log:
Code:- Bug fix: "Test Audio" feature was not working well. Fixed. - Workaround for a bug in ffmpeg on Windows: When the option -passlogfile contains non-ASCII characters, the path of the log file as built by ffmpeg is wrong and ffmpeg fails with "no such file or directory". Now use the DOS 8.3 short path of the temporary directory for temporary ffmpeg pass log files.
-
You have put a lot of effort and love into this project.
I have also been looking for something along these lines.
One note:
I would have to look it up but I believe MPEG2 audio is not supported by the DVD standard for NTSC. I may be wrong because I have not looked in a while... -
@dvd3500:
I would have to look it up but I believe MPEG2 audio is not supported by the DVD standard for NTSC. I may be wrong because I have not looked in a while...
@jobedo1
Will This support CC. -
MPEG2 audio isn't MANDATED by PAL in the sense that one must include a copy on every DVD, it is ONE OF the 3 mandated formats (LPCM, AC-3, MP2) at least one of which must be included. This differs from NTSC, where only those first 2 are in the list of must include. And since MP2 is deprecated (even in PAL systems) and AC-3 is still quite popular, it makes more sense to include AC-3 than MP2.
re:CCs, yes, 608/708 are another beast entirely, and a complicated one. While I'm sure there are US/Canadian users who would like support for that, I'd bet that just as many, if not more, users would prefer support for standard txt (or pic) subs.
Still, keep up the good work.
Scott -
Keeping on improving, version 1.2.4 is out there to address the remarks from the previous posts (except US CC for which I have no test stream and will not integrate unless I have actual request to).
Changelog:
Code:- Encoding for DVD now transcodes audio to AC-3 instead of MPEG-2 Audio Layer 2. - When encoding for DVD, if the input video stream is already DVD-compliant, do not re-encode video. Simply re-encode audio and remux. This is useful for video files from analog-to-digital acquisition cards which produce DVD-compliant files with MPEG-2 audio instead of AC-3. Previously, the re-encoding was skipped only if the complete file was DVD_compliant. - Automatic detection DVD-compliant files (full file or video only) can be disabled in the settings. This is useful to force a transcoding when the file seems DVD-compliant but is not really (too large for instance). - QtlMovie is now internationalized. The current only maintained translation is French. Looking for volunteers for other languages. Help files are not yet translated. The system locale is used by default (when supported by QtlMovie). Another locale can be specified on the command line. Example: "QtlMovie -l en" starts in English. - Bug fix: When editing the input or output file name, the cursor jumped to the end of line after each character. Fixed.
-
[QUOTE=lelegard;2275151]Keeping on improving, version 1.2.4 is out there to address the remarks from the previous posts (except US CC for which I have no test stream and will not integrate unless I have actual request to).
Well i am requesting it as most of my videos have CC
Joe -
All right. As I mentioned previously, it should not be too difficult to integrate the tool named CCextractor within QtlMovie, just like ffmpeg or telxcc. But I cannot work on that feature without test streams. Could you make available for download a few files with US CC? Preferably not too large (a few minutes is enough as long as CC are there). If there are several types of US CC or several ways of signaling them in the stream, at least one file of each type is necessary.
-
Source (an mp4 with 29.97 fps) becomes an 'NTSC' DVD at 30 fps.
Does this seem right?
AVStoDVD outputs 29.97 fps.
General
Complete name : C:\Users\Superuser\Desktop\downloads\39.mp4
Format : MPEG-4
Format profile : Base Media / Version 2
Codec ID : mp42
File size : 549 MiB
Duration : 39mn 42s
Overall bit rate mode : Variable
Overall bit rate : 1 934 Kbps
Encoded date : UTC 2012-10-08 16:49:58
Tagged date : UTC 2012-10-08 16:49:58
gsst : 0
gstd : 2382158
gssd : B4A7DAEE5MH1382226237634283
gshh : r18---sn-tt17rn7r.c.youtube.com
Video
ID : 1
Format : AVC
Format/Info : Advanced Video Codec
Format profile : High@L3.1
Format settings, CABAC : Yes
Format settings, ReFrames : 1 frame
Codec ID : avc1
Codec ID/Info : Advanced Video Coding
Duration : 39mn 42s
Bit rate : 1 740 Kbps
Maximum bit rate : 4 877 Kbps
Width : 1 280 pixels
Height : 720 pixels
Display aspect ratio : 16:9
Frame rate mode : Constant
Frame rate : 29.970 fps
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth : 8 bits
Scan type : Progressive
Bits/(Pixel*Frame) : 0.063
Stream size : 494 MiB (90%)
Tagged date : UTC 2012-10-08 16:51:01
Audio
ID : 2
Format : AAC
Format/Info : Advanced Audio Codec
Format profile : LC
Codec ID : 40
Duration : 39mn 42s
Bit rate mode : Variable
Bit rate : 192 Kbps
Maximum bit rate : 201 Kbps
Channel(s) : 2 channels
Channel positions : Front: L R
Sampling rate : 44.1 KHz
Compression mode : Lossy
Stream size : 54.5 MiB (10%)
Title : IsoMedia File Produced by Google, 5-11-2011
Encoded date : UTC 2012-10-08 16:50:04
Tagged date : UTC 2012-10-08 16:51:01General
Complete name : C:\Users\Superuser\Desktop\downloads\39\VIDEO_TS\V TS_01_1.VOB
Format : MPEG-PS
File size : 1 024 MiB
Duration : 36mn 47s
Overall bit rate mode : Variable
Overall bit rate : 3 891 Kbps
Video
ID : 224 (0xE0)
Format : MPEG Video
Format version : Version 2
Format profile : Main@Main
Format settings, BVOP : No
Format settings, Matrix : Default
Duration : 36mn 47s
Bit rate mode : Variable
Bit rate : 3 366 Kbps
Maximum bit rate : 9 000 Kbps
Width : 720 pixels
Height : 480 pixels
Display aspect ratio : 16:9
Frame rate : 30.000 fps
Standard : NTSC
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth : 8 bits
Scan type : Progressive
Compression mode : Lossy
Bits/(Pixel*Frame) : 0.325
Stream size : 886 MiB (86%)
Audio
ID : 189 (0xBD)-128 (0x80)
Format : AC-3
Format/Info : Audio Coding 3
Mode extension : CM (complete main)
Format settings, Endianness : Big
Muxing mode : DVD-Video
Duration : 36mn 46s
Bit rate mode : Constant
Bit rate : 448 Kbps
Channel(s) : 2 channels
Channel positions : Front: L R
Sampling rate : 48.0 KHz
Bit depth : 16 bits
Compression mode : Lossy
Stream size : 118 MiB (12%)
Menu
-
Could you be more specific? Is the VOB file the result of the conversion of the MP4 file using QtlMovie? If this is the case, could you please send the QtlMovie log? You can save the entire log after a conversion using the menu Tools / Save Log. Thus we could see the ffmpeg commands and their outputs. It seems strange that a 39mn 42s is transcoded into a 36mn 47s one by ffmpeg.
Did you try to play the DVD on a NTSC player and TV? Does it play correctly? Is there any missing part?
You have to understand that, like 90% of the humanity, I live in an area which does not use NTSC and it is impossible for me to test NTSC / ATSC stuff, either DVD or live signal. I am willing to help (for free) but I need some cooperation from NTSC users.
Specifically, could anybody post here the encoding details of a "real" commercial NTSC DVD? This could be done by analyzing one of the VOB's of the DVD either using MediaInfo or ffprobe. FFprobe is installed with QtlMovie. The interesting command to run is:
Code:"C:\Program Files\QtlMovie\wintools\ffprobe" -show_format -show_streams -print_format flat path\to\your.VOB
Thanks. -
Version 1.2.5 is out.
Change log:
Code:- US Closed Captions subtitles (CEA-608/708) are now supported thanks to the integration of CCExtractor. Currently, the CC are numbered as follow: 1: channel 1, field 1, 2: channel 1, field 2, 3: channel 2, field 1, 4: channel 2, field 2. This may not be ideal. Feedback from US users required. - Bug fix: On Windows, enforce the DVD burner device to be a drive name.
If any problem or weird behavior happens (and it certainly will), could you please use the QtlMovie ticket system on SourceForge and provide:
- A clear description of what you did.
- A copy of the QtlMovie log (please activate "Log Debug" before starting the conversion and "Save Log" after its completion).
- A download link to the input file. Without the input material, I won't be able to reproduce the problem and consequently unable to fix it.
-
Version 1.2.6 is out.
Change log:
Code:- Bug fix: On Windows, if the output file name contained a single quote (') and text subtitles from the input file were inserted in the output file, the conversion failed. Fixed. - Fixed typos in help files and translations. - Added check for a new version either when the application starts (can be disabled in the settings) or manually from the "Help" menu.
-
Version 1.2.9 is out.
Change log:
Code:- Added "AVI" output type for highly compressed file storage and exchange. - Integrated official FFmpeg 2.1 with Windows installer. - Windows installer is now internationalized. - Windows executable is now statically linked and the installer no longer embeds Qt DLL's. The installer is smaller and the risk to miss required new DLL's is reduced.
-
Version 1.2.10 is out.
Change log:
Code:- Added audio normalization. Not enabled by default, edit settings first. See help on audio settings for more details. - Reorganized "Edit Settings" tabs. - Fixed a problem with option -threads in ffmpeg. - On Windows with Aero desktop, added a progress bar on the application icon. Require Qt 5.2 or higher. - Fixed a problem when searching for a new version behind one specific brand of proxy server (did not like the default Qt User-Agent). - Integrated official FFmpeg 2.1.1 with Windows installer. - Prebuilt Windows binary uses Qt 5.2.0. - Provide a RPM package for QtlMovie on Fedora Linux. Added scripts to build custom RPM packages for ccextractor and telxcc which do not have packages in standard repositories.
-
Version 1.2.11 is released.
Change log:
Code:- Use the "rotate" metadata from the input file to apply the corresponding rotation on video. This is useful for video files from an iPhone which are sometimes upside down, depending on the iPhone orientation at the time the video was shot. Can be disabled in the settings. - Added "iPhone" output type. Same kind of conversion as iPad but size and bitrate parameters are different. - Video frame rate for iPad and iPhone is now 30 f/s instead of 25.
-
Version 1.2.12 is released
Change log:
Code:- Fixed a performance problem during the initial audio level analysis when audio normalization was required. - Prebuilt Windows binary uses Qt 5.2.0 final.
-
1.2.11 + 1.2.12 x86: Chrashes upon exit. File -> Quit or X. Windows Vista.
Not the case for x64 Win 8. -
I only have x64 Win 7 and Fedora in VirtualBox and I can't see the problem, same as you on Win 8.
Can be either a non deterministic issue in the application or a problem with Qt 5.2.0 on Vista.
I will check if valgrind can find something on the application.
Otherwise, could you describe your crash with some more details?
Thanks -
Thanks for the input.
Valgrind did not find anything special (I was looking for some kind of "use after free" which can cause that kind of undeterministic behaviour). Valgrind did find some memory leaks in Qt but its seems unrelated to your problem.
Between 1.2.8 and later, on the windows version, two distinct changes happened: 1) Qt 5.1 to 5.2 and 2) link with a static version of Qt instead of dynamic (to avoid the complex DLL structure of Qt). Maybe there is a problem with either on Vista. Do you have the environment to recompile a Qt application on you Vista system?
Similar Threads
-
[ffmpeg]How to adding logo into end of video?
By radiaku in forum Newbie / General discussionsReplies: 0Last Post: 30th Sep 2013, 13:32 -
ESPN will shut down its specialized ESPN 3D channel
By TreeTops in forum Latest Video NewsReplies: 10Last Post: 6th Jul 2013, 11:12 -
Trimming video from it's end using FFMpeg or Mencoder
By get8p in forum Newbie / General discussionsReplies: 2Last Post: 2nd Sep 2012, 22:12 -
Is it possible to add such graphical subtitles?
By Srivas in forum SubtitleReplies: 2Last Post: 12th Jan 2012, 06:01 -
A New Approach to mp4 demuxing: MPUi (a front-end for mplayer)
By Krelmaneck in forum Newbie / General discussionsReplies: 0Last Post: 27th Feb 2010, 15:35