[Giúp đỡ] Tạo ảnh thumbnail từ video .mp4



  • Chào các bạn,
    Mình đang cần làm chức năng tạo ảnh thumbnail từ file .mp4, bạn nào đã làm qua rồi thì hướng dẫn cho mình với. Mình tìm hiểu một số module nhưng làm toàn bị fail :D
    Cảm ơn các bạn.





  • Mình thử rồi bạn ơi. Cài cả phần mềm ffmpeg vào biến môi trường nữa mà cũng lỗi. Bạn đã làm thành công chưa? :D



  • Mình test trên win , ok

    var ffmpeg = require('fluent-ffmpeg');
    var path = require('path');
    
    ffmpeg.setFfmpegPath('./ffmpeg.exe');
    ffmpeg.setFfprobePath('./ffprobe.exe');
    
    var videoFile = path.join(__dirname, '/Z.Nation.S03E09.PROPER.720p.HDTV.x264-KILLERS.mp4');
    
    var proc = ffmpeg(videoFile)
    // setup event handlers
      .on('filenames', function(filenames) {
        console.log('screenshots are ' + filenames.join(', '));
      })
      .on('end', function() {
        console.log('screenshots were saved');
      })
      .on('error', function(err) {
        console.log('an error happened: ' + err.message);
      })
      // take 2 screenshots at predefined timemarks and size
      .takeScreenshots({ count: 2, timemarks: [ '00:00:02.000', '6' ], size: '1280x720' }, './thumb');
    


  • Cảm ơn bạn nhé.
    Cho mình hỏi thêm là có cách nào để lấy ảnh thumbnail tự động theo kích thước của video không? Thuộc tính "size" do mình tự quy định thì khi lấy ảnh nhiều khi sẽ bị méo quá.
    Cảm ơn bạn.



  • @Bui-Minh-Phong bạn bỏ otp size: 'width_x_height' đi là nó tự động lấy theo stream.width + stream.height

      .takeScreenshots({ count: 2, timemarks: [ '00:00:02.000', '6' ] }, './thumb');
    


  • Cảm ơn bạn rất nhiều nhé.


Log in to reply