- 博客(6)
- 问答 (1)
- 收藏
- 关注
原创 学习笔记-FFmpeg播放器-七.SWSInit()
对媒体流(视频或音频)进行初始化操作,为后续的媒体数据处理(如视频的图像转换、音频的重采样等)做好准备工作。通过分配相应的缓冲区和初始化转码或重采样上下文,可以确保后续的媒体数据处理能够顺利进行,并且能够将处理后的数据存储到合适的缓冲区中以便进一步的使用或输出。函数将分配的缓冲区与视频帧的数据指针和行尺寸关联起来,这样就可以在后续操作中通过这些指针来访问和操作视频帧的数据。函数,指定输入和输出的通道布局、采样格式、采样率等参数。函数对重采样上下文进行初始化,使其可以用于后续的音频重采样操作。
2025-04-28 14:34:01
374
原创 学习笔记-FFmpeg播放器-四.MEDIA_stream_open()
参数:MEDIA_TYPE media_t:指定媒体类型,可能是MEDIA_TYPE_MEDIA_PLAY(播放)也可能是MEDIA_TYPE_RECORD_PLAY(录制)。std::string filename:文件名。void *uVideoOutput:指向视频输出接口的指针,用于将视频帧输出到指定的显示设备或者进行录制。返回值:返回一个MediaState对象的指针。1.创建一个MediaState对象ms,并分配内存。
2025-04-25 15:17:23
535
原创 学习笔记-FFmpeg播放器-二.record_play_read_thread()
录制视频,调用sws_scale()将获取到的pFrame解码数据进行格式转换, 转换后的数据存储在frame,调用ms->avRecord->WriteData()将视频帧数据写入录制文件。更新视频的呈现时间this->vpts += duration,调用av_rescale_q设置输出DTS,PTS,dts=pts=this->vpts*AV_TIME_BASE_Q/avrVideo,同样的方式转换duration。1.首先调用avcodec_send_frame将视频帧发送到编码器进行编码。
2025-04-23 16:25:03
1217
原创 学习笔记-QT中emit关键字
1.定义信号,信号使用关键字signals来声明,不需要在类中具体实现。Q_OBJECT宏在类声明中使用是为了启用Qt的元对象系统,支持信号和槽机制的基础,如果类中使用了信号和槽,那么必须在类的声明中包含这个宏。emit用于发送信号的关键字,信号是Qt框架中的一种机制,用于在对象之间进行通信,特别是在事件驱动的编程中非常有用。3.连接信号与槽,使用connect()使信号连接到特定的槽函数,以便在信号发射时执行槽函数。2.发射信号,使用emit关键字在适当的时候发射信号。函数,标记当前项需要重新绘制。
2025-04-23 14:55:08
599
原创 学习笔记-音视频基础
采样率就是每秒从连续信号中提取并组成离散信号的采样个数,用赫兹(Hz)来表示,简单表达就是每秒在声道上采样的个数。采样率越高,还原的声音也就越真实。通常人耳能听到的频率范围大约在20Hz~20kHz之间的声音,为了保证声音不失真,采样率应该在40kHz以上。量化是将连续的模拟信号的幅度值转换为离散的数字数值的过程。在模数转换中,采样得到的每个点的辐值被映射到最接近的离散数值。量化位数(Bit Depth)决定了每个采样点用多少个二进制数来表示,常见的量化位数有16位和24位。
2025-04-17 20:58:18
1548
1
空空如也
linux下ffmpeg播放器qt报错
2025-04-22
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅