2017-06-12 299 views
0

我試圖用流利-的ffmpeg在火力功能,從而利用上傳的視頻截圖,但不斷收到此錯誤:錯誤:ffprobe退出,代碼爲1

錯誤:

Error: ffprobe exited with code 1 
ffprobe version N-83692-gb8a7dcbde2-static http://johnvansickle.com/ffmpeg/ Copyright (c) 2007-2017 the FFmpeg developers 
    built with gcc 5.4.1 (Debian 5.4.1-5) 20170205 
    configuration: --enable-gpl --enable-version3 --enable-static --disable-debug --disable-ffplay --disable-indev=sndio --disable-outdev=sndio --cc=gcc-5 --enable-fontconfig --enable-frei0r --enable-gnutls --enable-gray --enable-libass --enable-libfreetype --enable-libfribidi --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libvidstab --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxvid --enable-libzimg 
    libavutil  55. 47.100/55. 47.100 
    libavcodec  57. 81.100/57. 81.100 
    libavformat 57. 66.102/57. 66.102 
    libavdevice 57. 3.100/57. 3.100 
    libavfilter  6. 74.100/6. 74.100 
    libswscale  4. 3.101/4. 3.101 
    libswresample 2. 4.100/2. 4.100 
    libpostproc 54. 2.100/54. 2.100 
test/testvideo.mp4: No such file or directory 

    at ChildProcess.<anonymous> (/user_code/node_modules/fluent-ffmpeg/lib/ffprobe.js:233:22) 
    at emitTwo (events.js:106:13) 
    at ChildProcess.emit (events.js:191:7) 
    at Process.ChildProcess._handle.onexit (internal/child_process.js:215:12) 

這裏是我的代碼

exports.blurOffensiveImages = functions.storage.object().onChange(event => { 
    const object = event.data; 
    const file = gcs.bucket(object.bucket).file(object.name); 

    // Exit if this is a move or deletion event. 
    if (object.resourceState === 'not_exists') { 
    return console.log('This is a deletion event.'); 
    } 

    var proc = new ffmpeg({ source: object.name }) 
    .withSize('150x100') 
    .takeScreenshots({ 
     count: 2, 
     timemarks: [ '50%', '75%' ], 
     filename: '%b_screenshot_%w_%i' 
    }, 'test_screenshot/', function(err, filenames) { 
     console.log(filenames); 
     console.log('screenshots were saved'); 
    }); 

}); 

誰能幫我在做什麼錯?

+0

你得到它解決?我得到同樣的問題.. – user1590595

回答

0

的萬阿英,蔣達清在堆棧跟蹤

特別提到「測試/ testvideo.mp4:沒有這樣的文件或目錄

你所試圖做的是直接傳遞的文件,以火力存儲路徑ffmpeg,而ffmpeg正在Firebase系統上運行。

因此,爲了有效的路徑傳遞到FFmpeg的,你首先需要從火力存儲下載文件並將其保存在firbase的一個臨時目錄(因爲火力點只支持tmp目錄),並通過路徑之後將您從存儲器下載到tmp文件夾(本地路徑)中的文件複製到ffmpeg。

由於現在我們已經將文件的本地路徑傳遞給ffmpeg,它現在可以在本地使用,它將能夠找到目錄併爲您做所有的事情。

你也可以看到這個鏈接提述─ https://github.com/firebase/functions-samples/blob/master/generate-thumbnail/functions/index.js

謝謝

相關問題