If set to transcode on cron runs, using FFmpeg transcoder, and the path to the local video file has become incorrect somehow, OR the remote file can't be fetched (assuming ... I'm only working with local files, but the code certainly suggests this issue) the cron queue item never gets cleared. The error check isn't properly triggering an abort of the function.

In TranscoderAbstractionFactoryFfmpeg.inc line 31:

$srcuri = $this->settings['input']['uri'];
    $srcpath = drupal_realpath($srcuri);
    if (empty($srcpath)) {
      // If stored on a remote file system, such as S3, download the video to a temporary file.
      $srcpath = video_utility::createTemporaryLocalCopy($srcuri);
...

... I thought I knew the fix until I looked at my code and did a facepalm...

What we need is the statement to essentially be:
if(empty($srcpath) && THE_URI_IS_EXTERNAL){
Seeing if I can tackle that.

Comments

hermes_costell created an issue. See original summary.

hermes_costell’s picture

Issue summary: View changes
hermes_costell’s picture

I haven't tested this deeply yet but it appears:
(empty($srcpath) && url_is_external($srcpath) == TRUE)
Is the fix. In fact why not use url_is_external() instead of empty($srcpath) ?

apaderno’s picture

Version: 7.x-2.13 » 7.x-2.x-dev
Issue tags: -transcoding cron ffmpeg