transcodingthread.cpp
上传用户:dsfsafq
上传日期:2022-06-05
资源大小:47k
文件大小:1k
源码类别:

多媒体

开发平台:

Visual C++

  1. #include "transcodingthread.h"
  2. #include <QStringList>
  3. TranscodingThread::TranscodingThread(const QString& inputfile, const QString& outputfile, const QString& fps)
  4. {
  5.     input = inputfile;
  6.     output = outputfile;
  7.     framerate = fps;
  8. }
  9. void TranscodingThread::run()
  10. {
  11.     connect(&proc, SIGNAL(readyRead()), this, SLOT(readOutput()));
  12.     proc.start("mencoder "" + input + "" -oac mp3lame -lameopts preset=128 -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=1200 -ofps " + framerate + " -of avi -o "" + output + """);
  13. }
  14. void TranscodingThread::readOutput()
  15. {
  16.     c_proc_out = proc.readAll();
  17.     c_proc_out = c_proc_out.simplified();
  18.     qDebug() << c_proc_out;
  19.     if (c_proc_out.left(8) == "Flushing")
  20.     {
  21.         emit updateProgress("finished");
  22.         return;
  23.     }
  24.     if (c_proc_out.left(3) == "Pos")
  25.     {
  26.         c_proc_out.replace("( ", "(");
  27.         QStringList line = c_proc_out.split(' ');
  28.         emit updateProgress(line.at(3));
  29.     }
  30. }