1
에서 나는 '발견 DRM으로 보호 된 스트림'로 STDERR을 확인하는 코드가 : 그것은 작동문자로 표준 오류를 읽는 방법 [] C
const static char* DRM_TOKEN = "DRM protected stream detected";
const char* source = argv[1];
char tempfile[80];
memset(tempfile, 0, 80);
snprintf(tempfile, 80, "stderr_%lld.log", av_gettime());
freopen(tempfile, "w", stderr);
fflush(stderr);
FILE *fp = fopen(tempfile, "r");
if(fp)
{
char STDERR[256];
while(!feof(fp))
{
memset(STDERR, 0, sizeof(char) * 256);
fgets(STDERR, 256, fp);
if(strstr(STDERR, DRM_TOKEN) != NULL)
{
drm = 1;
break ;
}
}
fclose(fp);
}
을,하지만 난에 STDERR를 읽고 직접 방법 중 하나를 알고 싶어요 숯[]. PS. 내 코드는 리눅스 또는 macos에서 실행됩니다.
마지막으로 ffmpeg에서 로그 메시지를 가져 오는 올바른 방법을 발견했습니다. 함수 av_log_set_callback을 제공합니다. 모든 로그 메시지를 직접 가져올 수 있습니다. http://ffmpeg.org/doxygen/trunk/log_8c.html – qrtt1