小编rln*_*nes的帖子

如何在 FFMPEG/C++ 中同步音频和视频

我正在从我的网络中的其他 PC 接收 2 个带有时间戳的流(一个音频和一个视频)。我可以毫无问题地将视频和音频录制到单独的文件(mp4 和 aac)中。现在我试图将 2 个流放在一个 mp4 文件中,我创建了 2 个队列,一个用于音频数据包,另一个用于视频数据包,并尝试像这样同步它们:

void * muxer(void * param) {
    QPair<AVPacket, unsigned long long int> completePacketAudio;
    QPair<AVPacket, unsigned long long int> completePacketVideo;
    AVPacket pkt;
    int vts = 0;
    int ats = 0;
    while(threadMuxRun) {
        contextMutex.lock(); 
        if(audioPacketQueue.isEmpty() && videoPacketQueue.isEmpty()) {
            contextMutex.unlock();
            Sleep(0);
            continue;
        } else if(audioPacketQueue.isEmpty()) {
            completePacketVideo = videoPacketQueue.head();
            pkt = videoPacketQueue.dequeue().first;
            pkt.pts = vts;
            vts++;
            std::cout << "video ts:" << pkt.pts << std::endl;
            av_packet_rescale_ts(&pkt, video_st.st->time_base, video_st.enc->time_base);            
        } else if(videoPacketQueue.isEmpty()) { …
Run Code Online (Sandbox Code Playgroud)

c++ audio video ffmpeg

5
推荐指数
0
解决办法
1639
查看次数

在qss中设置QTreeView选择的项目样式

我需要在QTreeView上更改所选项目的背景颜色.我已经尝试过使用此示例和此 Stack Overflow问题.

应用于:: branch子控件的样式工作正常,但:: item子控件中的所有命令都不起作用.

QSS应用于QTreeView:

QTreeView {
   show-decoration-selected: 1;
}

QTreeView::item {
     border: 1px solid #d9d9d9;
    border-top-color: transparent;
    border-bottom-color: transparent;
     background: rgb(255, 0,0);
}

QTreeView::item:hover {
    background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #e7effd, stop: 1 #cbdaf1);
    border: 1px solid #bfcde4;
}

QTreeView::item:selected {
    border: 1px solid #567dbc;
}

QTreeView::item:selected:active{
    background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #6ea1f1, stop: 1 #567dbc);
}

QTreeView::item:selected:!active {
    background: …
Run Code Online (Sandbox Code Playgroud)

c++ qt qtstylesheets

3
推荐指数
1
解决办法
3496
查看次数

标签 统计

c++ ×2

audio ×1

ffmpeg ×1

qt ×1

qtstylesheets ×1

video ×1