Kdenlive   bug tracker Home page

View Issue Details Jump to Notes ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0000948KdenliveRenderingpublic2009-06-21 15:272009-07-01 21:56
ReporterGranjow 
Assigned Toadministrator 
PriorityhighSeveritymajorReproducibilityalways
StatusclosedResolutionfixed 
PlatformOSOS Version
Product VersionRecent git 
Target Version0.7.5Fixed in Version0.7.5 
Summary0000948: XviD: Same output video for all bitrates
DescriptionI can select 200k in the rendering dialog and 12000k and it produces exactly the same result.
-rw-r--r-- 1 simon simon 313572 21. Jun 15:23 test12kk2.avi
-rw-r--r-- 1 simon simon 313572 21. Jun 15:23 test200k.avi
Rendered a video a few days ago -> 65 MB. Today I did the same thing -> 19 MB, disregarded of selected bitrate. The quality is horrible.
TagsNo tags attached.
Build/Install MethodManual build from SVN
Attached Files

- Relationships

-  Notes
(0003367)
ddennedy (developer)
2009-06-22 02:18

Works fine for me on single pass using FFmpeg v0.5 and XviD 1.2.1. I will test with a newer version of FFmpeg next.
There is no obvious problem from examing the encoding options in the profiles.
Highly doubtful dual pass reproduces it, but I can test that as well. I am suspecting this is specific to some combination of versions of FFmpeg and XviD. Please provide your versions.
(0003368)
Granjow (developer)
2009-06-22 14:06

$ apt-cache policy libxvidcore4
libxvidcore4:
  Installiert: 2:1.2.2-0.0
  Kandidat: 2:1.2.2-0.0
  Versions-Tabelle:
 *** 2:1.2.2-0.0 0
        500 http://www.debian-multimedia.org [^] sid/main Packages
        100 /var/lib/dpkg/status

$ apt-cache policy libxvidcore4-dev
libxvidcore4-dev:
  Installiert: 2:1.2.2-0.0
  Kandidat: 2:1.2.2-0.0
  Versions-Tabelle:
 *** 2:1.2.2-0.0 0
        500 http://www.debian-multimedia.org [^] sid/main Packages
        100 /var/lib/dpkg/status

ffmpeg$ svn info
Revision: 19244

mlt: 0cd7a3adb4169bb37f8dee073205454db9a5648b

Also Dual Pass is ignored.


I've just tested MPEG4. Same results. Exactly the same videos with both 4000k and 25000k.
(0003376)
jappel (reporter)
2009-06-22 18:38

I think I experience the same. All rendered output has a very bad quality, regardless of the choosen codec. There is sometimes a difference in the filesize, but most of the time different codes result in the exact filesize.

In a console, it looks like the right stuff gets invoked:

kdenlive(25625) RenderWidget::parseFile: // Parsing file: "/usr/share/apps/kdenlive/export/profiles.xml"
kdenlive(25625) RenderWidget::parseFile: ------------------------------
//STARTING RENDERING: true , false , "/usr/bin/melt" , "dv_pal" , "avformat" , "-" , "/tmp/kde-juergen/kdenliveV25625.mlt" , "/home/juergen/untitled.mp4" , () , ("f=mp4 acodec=libmp3lame ab=384k ar=48000 ac=2 vcodec=mpeg4 qscale=1 qmin=1 aspect=@4/3 intra=1") , -1 , -1
Started render process: "/usr/bin/melt" "/tmp/kde-juergen/kdenliveV25625.mlt -profile dv_pal -consumer avformat:/home/juergen/untitled.mp4 progress=1 f=mp4 acodec=libmp3lame ab=384k ar=48000 ac=2 vcodec=mpeg4 qscale=1 qmin=1 aspect=@4/3 intra=1"

MLT melt 0.4.2
Qt: 4.5.1
KDE: 4.2.4 (KDE 4.2.4)
Kdenlive: 0.7.4 (svn 3619)

Fmpeg version SVN-r19249, Copyright (c) 2000-2009 Fabrice Bellard, et al.
  configuration: --prefix=/usr --enable-gpl --enable-nonfree --enable-libmp3lame --enable-libfaac --enable-libfaad --enable-libx264 --enable-libtheora --enable-postproc --enable-shared --enable-pthreads --enable-x11grab --arch=x86_64
  libavutil 50. 3. 0 / 50. 3. 0
  libavcodec 52.32. 0 / 52.32. 0
  libavformat 52.34. 0 / 52.34. 0
  libavdevice 52. 2. 0 / 52. 2. 0
  libswscale 0. 7. 1 / 0. 7. 1
  libpostproc 51. 2. 0 / 51. 2. 0

arch64 bit.

Hope it helps,

Juergen.
(0003378)
ddennedy (developer)
2009-06-22 19:41

Still unable to reproduce on a different box using FFmpeg SVN-r19219 and XviD 1.1.2 (as supplied via Ubuntu 9.04). Have you fully rebuilt MLT since you installed FFmpeg?
(0003390)
jmpoure (developer)
2009-06-23 10:44

Bug confirmed.

To reproduce, install MLT, Kdenlive and FFmpeg from today's SVN.

Then download: http://www.poure.com/footage/freebox/freebox-source-mpeg2.ts [^]
Create a PAL wide 16:9 project.
Add the footage.
Export to Xvid 2000 k.

The result is a video with poor quality and 64k audio, although the profile is asking for 128jk audio. So both video and audio are impacted:
http://www.poure.com/footage/freebox/freebox-target-kdenlive.xvid+mp3-2000k.avi [^]

Rendering log:
//STARTING RENDERING: true , false , "/usr/bin/melt" , "dv_pal_wide" , "avformat" , "-" , "/tmp/kde-jmpoure/kdenliven15984.mlt" , "/home/jmpoure/kdenlive/untitled.avi" , () , ("acodec=libmp3lame ab=128k ar=48000 vcodec=libxvid minrate=0 b=2000k aspect=@16/9 mbd=2 trellis=1 mv4=1") , -1 , -1
Started render process: "/usr/bin/melt" "/tmp/kde-jmpoure/kdenliven15984.mlt -profile dv_pal_wide -consumer avformat:/home/jmpoure/kdenlive/untitled.avi progress=1 acodec=libmp3lame ab=128k ar=48000 vcodec=libxvid minrate=0 b=2000k aspect=@16/9 mbd=2 trellis=1 mv4=1"
Rendering of "/home/jmpoure/kdenlive/untitled.avi" finished
(0003391)
jappel (reporter)
2009-06-23 11:54

ddennedy: yes, double checked with a new recompile, still it s the same. Anything I can do to hunt it down?
(0003393)
Granjow (developer)
2009-06-23 18:28

It is kdenlive. I just checked out r3522 and I get the following output when rendering 2-pass:

//STARTING RENDERING: true , true , "/usr/bin/melt" , "/home/simon/.kde/share/apps/kdenlive/profiles//customprofile0" , "avformat" , "-" , "/tmp/kde-simon/kdenliveHc4849.mlt" , "/data/video/Fighting2/r3522.avi" , () , ("acodec=libmp3lame", "ab=128k", "ar=44100", "vcodec=libxvid", "minrate=0", "b=2000k", "aspect=@140/79", "mbd=2", "trellis=1", "mv4=1", "pass=1") , 18000 , 25585
Started render process: "/usr/bin/melt" "/tmp/kde-simon/kdenliveHc4849.mlt in=18000 out=25585 -profile /home/simon/.kde/share/apps/kdenlive/profiles//customprofile0 -consumer avformat:/data/video/Fighting2/r3522.avi progress=1 acodec=libmp3lame ab=128k ar=44100 vcodec=libxvid minrate=0 b=2000k aspect=@140/79 mbd=2 trellis=1 mv4=1 pass=1"
Rendering of "/data/video/Fighting2/r3522.avi" finished
Started render process: "/usr/bin/melt" "/tmp/kde-simon/kdenliveHc4849.mlt in=18000 out=25585 -profile /home/simon/.kde/share/apps/kdenlive/profiles//customprofile0 -consumer avformat:/data/video/Fighting2/r3522.avi progress=1 acodec=libmp3lame ab=128k ar=44100 vcodec=libxvid minrate=0 b=2000k aspect=@140/79 mbd=2 trellis=1 mv4=1 pass=2"

Contrary to the current version there is pass=1 and pass=2. Output when settings are ignored:

//STARTING RENDERING: true , true , "/usr/bin/melt" , "/home/simon/.kde/share/apps/kdenlive/profiles//customprofile0" , "avformat" , "-" , "/tmp/kde-simon/kdenlivexD8665.mlt" , "/data/video/Fighting2/r3613.avi" , () , ("acodec=libmp3lame ab=128k ar=44100 vcodec=libxvid minrate=0 b=1000k aspect=@140/79 mbd=2 trellis=1 mv4=1 pass=2") , 18000 , 25585
Started render process: "/usr/bin/melt" "/tmp/kde-simon/kdenlivexD8665.mlt in=18000 out=25585 -profile /home/simon/.kde/share/apps/kdenlive/profiles//customprofile0 -consumer avformat:/data/video/Fighting2/r3613.avi progress=1 acodec=libmp3lame ab=128k ar=44100 vcodec=libxvid minrate=0 b=1000k aspect=@140/79 mbd=2 trellis=1 mv4=1 pass=2"
Rendering of "/data/video/Fighting2/r3613.avi" finished

r3532 is still ok too.
r3590 too.
I'm having this problem at least since Jun 21st, 1300 UTC. r3613 was the latest revision at this point of time. Testing, just to make sure ...
r3613 BAD

Doing binary search now ...
(0003394)
Granjow (developer)
2009-06-23 18:46

r3602 ok
r3607 BAD
r3604 ok
r3606 ok

okay, who has committed r3607? :)
(0003396)
Granjow (developer)
2009-06-23 18:54

Good news: It was not me. (by one revision)
Bad news: It was jb ;)

Diff is nothing directly related to the renderer ...

svn diff -r 3606:3607
Index: src/projectlistview.cpp
===================================================================
--- src/projectlistview.cpp (Revision 3606)
+++ src/projectlistview.cpp (Revision 3607)
@@ -143,15 +143,17 @@
 {
     kDebug() << "//////////////// DROPPED EVENT";
     if (event->mimeData()->hasUrls()) {
- QTreeWidgetItem *item = itemAt(event->pos());
+ ProjectItem *item = static_cast <ProjectItem *>(itemAt(event->pos()));
         QString groupName;
+ QString groupId;
         if (item) {
- if (((ProjectItem *) item)->isGroup()) groupName = item->text(1);
- else if (item->parent() && ((ProjectItem *) item->parent())->isGroup())
- groupName = item->parent()->text(1);
+ if (item->parent()) item = static_cast <ProjectItem *>(item->parent());
+ if (item->isGroup()) {
+ groupName = item->groupName();
+ groupId = item->clipId();
+ }
         }
- emit addClip(event->mimeData()->urls(), groupName);
-
+ emit addClip(event->mimeData()->urls(), groupName, groupId);
     } else if (event->mimeData()->hasFormat("kdenlive/producerslist")) {
         ProjectItem *item = static_cast <ProjectItem *>(itemAt(event->pos()));
         if (item) {
Index: src/projectlist.cpp
===================================================================
--- src/projectlist.cpp (Revision 3606)
+++ src/projectlist.cpp (Revision 3607)
@@ -94,7 +94,7 @@
     connect(m_listView, SIGNAL(pauseMonitor()), this, SLOT(slotPauseMonitor()));
     connect(m_listView, SIGNAL(requestMenu(const QPoint &, QTreeWidgetItem *)), this, SLOT(slotContextMenu(const QPoint &, QTreeWidgetItem *)));
     connect(m_listView, SIGNAL(addClip()), this, SLOT(slotAddClip()));
- connect(m_listView, SIGNAL(addClip(const QList <QUrl>, const QString &)), this, SLOT(slotAddClip(const QList <QUrl>, const QString &)));
+ connect(m_listView, SIGNAL(addClip(const QList <QUrl>, const QString &, const QString &)), this, SLOT(slotAddClip(const QList <QUrl>, const QString &, const QString &)));
     connect(m_listView, SIGNAL(itemChanged(QTreeWidgetItem *, int)), this, SLOT(slotItemEdited(QTreeWidgetItem *, int)));
     connect(m_listView, SIGNAL(showProperties(DocClipBase *)), this, SIGNAL(showClipProperties(DocClipBase *)));

@@ -596,7 +596,7 @@
     QTimer::singleShot(500, this, SLOT(slotCheckForEmptyQueue()));
 }

-void ProjectList::slotAddClip(const QList <QUrl> givenList, QString group)
+void ProjectList::slotAddClip(const QList <QUrl> givenList, const QString &groupName, const QString &groupId)
 {
     if (!m_commandStack) kDebug() << "!!!!!!!!!!!!!!!! NO CMD STK";
     KUrl::List list;
@@ -622,10 +622,10 @@
     }
     if (list.isEmpty()) return;

- if (group.isEmpty()) {
+ if (givenList.isEmpty()) {
         QStringList groupInfo = getGroup();
         m_doc->slotAddClipList(list, groupInfo.at(0), groupInfo.at(1));
- } else m_doc->slotAddClipList(list, group, QString());
+ } else m_doc->slotAddClipList(list, groupName, groupId);
 }

 void ProjectList::slotRemoveInvalidClip(const QString &id, bool replace)
Index: src/projectlist.h
===================================================================
--- src/projectlist.h (Revision 3606)
+++ src/projectlist.h (Revision 3607)
@@ -144,7 +144,7 @@
     void slotRemoveInvalidClip(const QString &id, bool replace);
     void slotSelectClip(const QString &ix);
     void slotRemoveClip();
- void slotAddClip(const QList <QUrl> givenList = QList <QUrl> (), QString group = QString());
+ void slotAddClip(const QList <QUrl> givenList = QList <QUrl> (), const QString &groupName = QString(), const QString &groupId = QString());
     void slotAddFolder(const QString foldername, const QString &clipId, bool remove, bool edit = false);
     void slotResetProjectList();
     void slotOpenClip();
Index: src/projectlistview.h
===================================================================
--- src/projectlistview.h (Revision 3606)
+++ src/projectlistview.h (Revision 3607)
@@ -62,7 +62,7 @@
 signals:
     void requestMenu(const QPoint &, QTreeWidgetItem *);
     void addClip();
- void addClip(const QList <QUrl>, const QString &);
+ void addClip(const QList <QUrl>, const QString &, const QString &);
     void showProperties(DocClipBase *);
     void focusMonitor();
     void pauseMonitor();


PS: Please don't think I'm able to solve this problem :) Anyone knowing what is going wrong may feel free to correct it.
(0003397)
administrator (administrator)
2009-06-23 19:04

My fault. I did a big rewrite of the way render jobs are handeled, all render parameters were ignored. Please test again with latest svn (rev. 3626)
(0003399)
Granjow (developer)
2009-06-23 19:32

I thought it would be something that way. Thanks a lot for fixing!

- Issue History
Date Modified Username Field Change
2009-06-21 15:27 Granjow New Issue
2009-06-21 15:27 Granjow Build/Install Method => Manual build from SVN
2009-06-22 02:18 ddennedy Note Added: 0003367
2009-06-22 14:06 Granjow Note Added: 0003368
2009-06-22 18:38 jappel Note Added: 0003376
2009-06-22 19:41 ddennedy Note Added: 0003378
2009-06-23 10:44 jmpoure Note Added: 0003390
2009-06-23 11:54 jappel Note Added: 0003391
2009-06-23 18:28 Granjow Note Added: 0003393
2009-06-23 18:46 Granjow Note Added: 0003394
2009-06-23 18:54 Granjow Note Added: 0003396
2009-06-23 19:04 administrator Note Added: 0003397
2009-06-23 19:04 administrator Status new => feedback
2009-06-23 19:32 Granjow Note Added: 0003399
2009-06-23 19:32 Granjow Assigned To => administrator
2009-06-23 19:32 Granjow Resolution open => fixed
2009-06-23 19:32 Granjow Fixed in Version => Recent git
2009-06-23 19:32 Granjow Target Version => future version
2009-06-23 19:33 Granjow Status feedback => resolved
2009-06-23 19:42 jmpoure Note Added: 0003400
2009-06-23 19:43 jmpoure Note Deleted: 0003400
2009-06-26 21:01 administrator Fixed in Version Recent git => 0.7.5
2009-06-26 21:07 administrator Fixed in Version 0.7.5 => Recent git
2009-06-26 21:07 administrator Target Version future version => 0.7.5
2009-07-01 20:02 j-b-m Fixed in Version Recent git => 0.7.5
2009-07-01 21:56 xzhayon Status resolved => closed


Copyright © 2000 - 2014 MantisBT Team
Powered by Mantis Bugtracker