是否有一个ff探头命令,我可以运行,看看我有一个mov文件是音频的,或包含视频以及?我有各种各样的mov文件,其中一些是音频配音,有些是完整的视频。
发布于 2015-08-29 13:43:30
您可以用JSON或XML输出流信息:
ffprobe -show_streams -print_format json input.mov
您将得到一个具有codec_type属性的流数组,其值为audio、video等。
发布于 2015-08-29 18:03:01
输出codec_type
ffprobe -loglevel error -show_entries stream=codec_type -of default=nw=1 input.foo举例结果:
codec_type=video
codec_type=audio如果您有多个音频或视频流,则输出将显示多个视频或音频条目。
与上述相同,但输出的值仅为
ffprobe -loglevel error -show_entries stream=codec_type -of default=nw=1=nk=1 input.foo或者:
ffprobe -loglevel error -show_entries stream=codec_type -of csv=p=0 input.foo举例结果:
video
audio要包含流索引,请执行以下操作
ffprobe -loglevel error -show_entries stream=index,codec_type -of csv=p=0 input.foo举例结果:
0,video
1,audio在本例中,视频是第一流,音频是第二流,这是规范的,但并不总是如此。
如果没有音频,什么也不输出
ffprobe -loglevel error -select_streams a -show_entries stream=codec_type -of csv=p=0 input.foo使用音频输入的示例结果:
audio如果输入没有,而不是有音频,那么就不会有输出(空输出),这对于脚本的使用是有用的。
JSON输出示例
ffprobe -loglevel error -show_entries stream=codec_type -of json input.mkv 举例结果:
{
"programs": [
],
"streams": [
{
"codec_type": "video"
},
{
"codec_type": "audio"
}
]
}其他输出格式
如果您想要不同的输出格式(ini、平面、紧凑、csv、xml),请参阅FFprobe文档:作者。
发布于 2018-07-15 19:44:32
要以编程方式了解视频文件是否有音频,请使用下面所示的avformat_open_input() --如果audio_index更大或等于零,那么视频文件就有音频。
if (avformat_open_input(&pFormatCtx, filename, nullptr, nullptr) != 0) {
fprintf(stderr, "Couldn't open video file!\n");
return -1;
}
if (avformat_find_stream_info(pFormatCtx, nullptr) < 0) {
fprintf(stderr, "Couldn't find stream information!\n");
return -1;
}
av_dump_format(pFormatCtx, 0, videoState->filename, 0);
for (i = 0; i < pFormatCtx->nb_streams; i++) {
if (pFormatCtx->streams[i]->codec->codec_type == AVMEDIA_TYPE_VIDEO && video_index < 0)
video_index = i;
if (pFormatCtx->streams[i]->codec->codec_type == AVMEDIA_TYPE_AUDIO && audio_index < 0)
audio_index = i;
}https://stackoverflow.com/questions/32278277
复制相似问题