Recording video or audio in Windows

1
2
3
4
5
6
7
8
9
10
11
ffmpeg -f dshow -list_devices true -i dummy
 
# can only play one instance simultaneously
ffplay -f dshow -i video="Integrated Webcam"
 
# can play multiple instances
ffmpeg -f dshow -i audio="Microphone (Realtek(R) Audio)" out2.wav
 
# record screen sound,
# if "Stereo Mix..." is not displayed, activate it in Sound Settings of Windows Control Panel.
ffmpeg -f dshow -i audio="Stereo Mix (Realtek Audio)" C:\Users\fatiw\Desktop\Audio\output.mp3

refer to:
https://blog.csdn.net/qq_43627907/article/details/124416450
compiled ok in Qt5.15.2.

https://blog.csdn.net/how0723/article/details/77418421
https://zhuanlan.zhihu.com/p/31348306
search 'QAudioOutput' in Qt Creator Examples.

https://blog.csdn.net/jlf521521/article/details/106689503
QT5使用QCustomplot绘制频谱瀑布图并封快速傅里叶变换fft类
https://blog.csdn.net/u013915524/article/details/122288358

https://www.addictivetips.com/windows-tips/record-system-sound-with-ffmpeg-on-windows-10/

QTimeLine starts very slowly

Need to set the time line execution curve as linear.

1
2
3
4
5
	m_time_line.reset(new QTimeLine(m_span_msecs * count, this));
	m_time_line->setFrameRange(0, count);
	m_time_line->setEasingCurve(QEasingCurve::Linear);
	// below is deprecated
	//m_time_line->setCurveShape(QTimeLine::LinearCurve);

refer to:
http://www.wjhsh.net/rickyk-p-4044875.html

Retrieve all widgets after times of calling addWidget at same position

Don't call QGridLayout::itemAtPosition.

Like this,

1
2
3
4
5
6
7
8
9
10
11
12
for (int i = 0; i < grid_layout->count(); i++)
{
	QLayoutItem* item = grid_layout->itemAt(i);
 
	if (item->widget() == widget_wanted)
	{
		int row, column, row_span, column_span;
		grid_layout->getItemPosition(i, &row, &column, &row_span, &column_span);
 
		// grid_layout->addWidget(frame, row, column);
	}
}