video analysis2.0拆分,ffmpeg封装go接口库
zhangmeng
2019-09-28 a4cfd08f442fbf6febf06c98bbbed1723aaf5fd4
csrc/buz/recorder.cpp
@@ -35,6 +35,7 @@
        ,thrd_(nullptr)
        ,error_occured_(false)
        ,audio_(false)
        ,cur_frame_a(0)
        {
            // logIt("RECODER ID: %s", id_.c_str());
        }
@@ -74,7 +75,16 @@
            
            int pid = getpid();
            file_path_ = dir_ + "/" + sole::uuid4().base62() + "-" + std::to_string(pid) + ".mp4";
            auto ret = out_->JustWriter(in_->getStream(AVMEDIA_TYPE_VIDEO), in_->getStream(AVMEDIA_TYPE_AUDIO), file_path_.c_str());
            auto v = in_->getStream(AVMEDIA_TYPE_VIDEO);
            if (!v){
                return -2;
            }
            AVStream *a = in_->getStream(AVMEDIA_TYPE_AUDIO);
            if (!audio){
                a = NULL;
            }
            auto ret = out_->JustWriter(v, a, file_path_.c_str());
            if (ret){
                logIt("start record file: %s", file_path_.c_str());
                return 0;
@@ -106,6 +116,8 @@
                    id_frame_in_file_ = cur_frame;
                }
                cur_frame++;
            }else if (in_->isAudioPkt(&np)) {
                cur = cur_frame_a++;
            }
            
            auto ret = out_->writeFrame(&np, cur);