我尝试从bbb-1920x1080-cfg02.mkv中提取视频流
命令如下.
ffmpeg -i bbb-1920x1080-cfg02.mkv -map 0:0 -c copy bbb.mkv
Run Code Online (Sandbox Code Playgroud)
但输出文件无法与播放器(potplayer)一起播放
我使用ffmpeg -i bbb.mkv来检查信息,并且有很多错误消息.
ffmpeg version N-80680-ga887fbb Copyright (c) 2000-2016 the FFmpeg developers
built with gcc 4.8 (Ubuntu 4.8.4-2ubuntu1~14.04.3)
configuration: --enable-vaapi --disable-vda --disable-vdpau --disable-libxcb --disable-ffplay --disable-ffserver --disable-ffprobe --disable-indev=jack --disable-outdev=sdl --enable-libx264 --enable-libx265 --enable-gpl --disable-libxcb --disable-libxcb-shm --disable-libxcb-xfixes --disable-libxcb-shape --disable-x11grab
libavutil 55. 26.100 / 55. 26.100
libavcodec 57. 46.100 / 57. 46.100
libavformat 57. 40.101 / 57. 40.101
libavdevice 57. 0.101 / 57. 0.101
libavfilter 6. 46.102 / 6. 46.102
libswscale …Run Code Online (Sandbox Code Playgroud) 以下是我的示例代码
在foo()需要使用标准c库exit()来终止进程的成员函数中,但int CFoo::exit(void)在编译时它与成员函数有不明确的命名错误.
无论如何可以避免这个问题?
#include <stdlib.h>
#include <stdio.h>
class CFoo
{
public:
void foo(void)
{
exit(0); // needs to use standard libc to exit process
}
void exit(void)
{
printf("exit\n");
}
};
int main()
{
CFoo obj;
obj.foo();
}
Run Code Online (Sandbox Code Playgroud) 当临时对象由(另一个)函数创建然后返回时,我不知道调用临时对象的成员函数是否安全.
以下是一个例子:
string getString(const string &str)
{
string tempStr = str + str;
return tempStr;
}
int main()
{
if(getString("aaaaa").compare("bbbb") == 0) { // is it safe?
// do something
}
}
Run Code Online (Sandbox Code Playgroud)
我也做了如下的终身测试.
class Foo
{
public:
Foo()
{
cout << __PRETTY_FUNCTION__ << " :" << this << endl;
}
~Foo()
{
cout << __PRETTY_FUNCTION__ << " :" << this << endl;
}
void show()
{
cout << this << endl;
}
};
Foo func(void)
{
return Foo();
}
int …Run Code Online (Sandbox Code Playgroud)