派生自 development/c++

pansen
2019-03-07 d3b7bbe7102cd089680a828f5d8f6402c8cf6342
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#include "RecordVideoI.h"
#include <QtCore/QDateTime>
#include <basic/util/app/AppPreference.hpp>
 
RecordVideoI::RecordVideoI()
{
 
}
 
std::string RecordVideoI::recordVideo(const std::string &rtsp, Ice::Long ms, const Ice::Current &)
{
    QString rtspUrl = QString::fromStdString(rtsp);
 
    int ss = 1000;
    int mi = ss * 60;
    int hh = mi * 60;
 
    long hour = ms / hh;
    long minute = (ms - hour * hh) / mi;
    long second = (ms - hour * hh - minute * mi) / ss;
 
    QString strHour = QString("%1").arg(hour,2,10,QChar('0'));
    QString strMinute = QString("%1").arg(minute,2,10,QChar('0'));
    QString strSecond = QString("%1").arg(second,2,10,QChar('0'));
 
    QString currentTime = QDateTime::currentDateTime().toString("yyyyMMdd_hh:mm:ss:zzz");
    QString fileName = currentTime + ".mp4";
    QString CmdTouch = QString("touch %1").arg(fileName);
    QString CmdOrder = QString("LD_LIBRARY_PATH=/usr/local/cuda/lib64 ffmpeg -y -i %1 -vcodec copy -acodec copy -t %2:%3:%4 %5/%6 &")
            .arg(rtspUrl).arg(strHour).arg(strMinute)
            .arg(strSecond).arg(QString::fromStdString(appPref.getStringData("user.absolute.path")))
            .arg(fileName);
 
    system(CmdTouch.toLatin1().data());
    system(CmdOrder.toLatin1().data());
 
    return fileName.toStdString();
}