Bug 373889 - Proxy clip generation fails, for reasons unrevealed by kdenlive
Summary: Proxy clip generation fails, for reasons unrevealed by kdenlive
Status: RESOLVED FIXED
Alias: None
Product: kdenlive
Classification: Applications
Component: Rendering & Export (other bugs)
Version First Reported In: git-master
Platform: Other Linux
: NOR normal
Target Milestone: ---
Assignee: Jean-Baptiste Mardelle
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2016-12-19 13:58 UTC by Lutz Vieweg
Modified: 2018-10-11 18:46 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed/Implemented In:
Sentry Crash Report:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Lutz Vieweg 2016-12-19 13:58:40 UTC
I tried to use
 Kdenlive-16.12-x86_64.AppImage
 Last modified: Thu, 15 Dec 2016 18:30:34 GMT (Unix time: 1481826634)
 SHA-256 Hash: f4e49ad0775117b8d5d314e0028bed6f7e12bca9495ae047def2748b7a3ac083 
under CentOS 7.3 with 3840x2160p24 video files I recorded with my camera.

For decent GUI performance, I need to use "proxy clips", and have often done so successfully with kdenlive 0.9x in the past.

However, every time I try creating a proxy clip with above named new kdenlive version, I consistently get a "Proxy Clip creation failed" error message from kdenlive, with no further reasons revealed. 

Every time when the failure of the proxy clip creation is reported, the xterm from where I started the kdenlive AppImage emits a message "QIODevice::read (QProcess): device not open" - I cannot say whether this is actually related to the root cause of the problem.

I attached "strace -f -p" to the running kdenlive to get an idea what's going wrong, but there is no obvious hints I can see - here's an excerpt of the output related to some thread that seems to get started when proxy clips are to be created:

[pid  2457] clone(child_stack=0x7f4f3a5bee70, flags=CLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_THREAD|CLONE_SYSVSEM|CLONE_SETTLS|CLONE_PARENT_SETTID|CLONE_CHILD_CLEARTID, parent_tidptr=0x7f4f3a5bf9d0, tls=0x7f4f3a5bf700, child_tidptr=0x7f4f3a5bf9d0) = 3155
Process 3155 attached
[pid  3155] set_robust_list(0x7f4f3a5bf9e0, 24 <unfinished ...>
[pid  3155] <... set_robust_list resumed> ) = 0
[pid  3155] eventfd2(0, O_NONBLOCK|O_CLOEXEC <unfinished ...>
[pid  3155] <... eventfd2 resumed> )    = 12
[pid  3155] prctl(PR_SET_NAME, 0x7f4f340031d8, 0, 0, 0) = 0
[pid  3155] stat("/home/test7/video/video_new_kdenlive/proxy/725828d8935f700ab6a7f610b531a617.mpg", 0x7f4f3a5beb50) = -1 ENOENT (No such file or directory)
[pid  3155] stat("/home/test7/video/video_new_kdenlive/proxy",  <unfinished ...>
[pid  3155] <... stat resumed> {st_mode=S_IFDIR|0775, st_size=6, ...}) = 0
[pid  3155] access("/home/test7/video/video_new_kdenlive/proxy", W_OK <unfinished ...>
[pid  3155] <... access resumed> )      = 0
[pid  3155] stat("/home/test7/video/video_new_kdenlive/proxy/725828d8935f700ab6a7f610b531a617.mpg",  <unfinished ...>
[pid  3155] <... stat resumed> 0x7f4f3a5be9d0) = -1 ENOENT (No such file or directory)
[pid  3155] write(2, "QIODevice::read (QProcess): devi"..., 44 <unfinished ...>
[pid  3155] <... write resumed> )       = 44
[pid  3155] futex(0x7f4f2855cafc, FUTEX_WAIT_BITSET_PRIVATE, 13, {2936, 971454834}, ffffffff <unfinished ...>


That the stat() call on "/home/test7/video/video_new_kdenlive/proxy/725828d8935f700ab6a7f610b531a617.mpg" returns ENOENT seems plausible as this file does not exist (neither before nor after trying the proxy clip creation). The "proxy" directory itself does exist and is writeable.

It would certainly help a lot if kdenlive bothered to provide some more details on the error than just stating the creation failed. Is there any kind of log-file, debug-level/verbosity configuration option?
Comment 1 Lutz Vieweg 2016-12-19 14:00:47 UTC
Just to mention this: I am able to render output files, so melt-based encoding in general seems to work.
Comment 2 Jean-Baptiste Mardelle 2016-12-20 22:43:54 UTC
Can you check in Kdenlive's menu:

Settings > Configure Kdenlive > Environment

The path for FFmpeg should be defined, it is required to create proxy clips. The path should be similar to the one defined for Melt path a few lines below, with "ffmpeg" instead of "melt" as program name.
Comment 3 Lutz Vieweg 2016-12-21 09:37:46 UTC
Indeed, the ffmpeg/ffplay/ffprobe paths under Settings > Configure Kdenlive > Environment are empty when I start the AppImage.

"ffplay" does not exist in the AppImage mounted directory, but ffmpeg and ffprobe do exist.

If I enter either the paths to the included ffmpeg/ffpprobe executables or paths to system-wide installed ffmpeg/ffplay/ffprobe executables, proxy clip creation does work fine.

So I guess the remaining issues are:
- missing default path configuration for ff* in the AppImage
- insufficient error messages when vital configuration items like those paths are empty

Thanks for your efforts!
Comment 4 Jean-Baptiste Mardelle 2016-12-23 15:06:00 UTC
Git commit f864233ac115302a6ec7cbdfd4e94af902394a38 by Jean-Baptiste Mardelle.
Committed on 23/12/2016 at 15:05.
Pushed by mardelle into branch 'Applications/16.12'.

Check FFmpeg's executable in same folder as MLT first.
Display informative error if a clip job fails because FFmpeg not found

M  +15   -3    src/dialogs/wizard.cpp
M  +8    -2    src/project/cliptranscode.cpp
M  +6    -0    src/project/jobs/cutclipjob.cpp
M  +6    -0    src/project/jobs/proxyclipjob.cpp

https://commits.kde.org/kdenlive/f864233ac115302a6ec7cbdfd4e94af902394a38