首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何用FFProbe检测变形视频?

如何用FFProbe检测变形视频?
EN

Stack Overflow用户
提问于 2013-06-28 05:18:35
回答 2查看 2.6K关注 0票数 1

这是我使用FFProbe得到的一段视频的输出,我确定它是变形的。我已经将其转换为ffmpeg的测试,结果与具有不同PAR和DAR的视频一致(视频被挤压)。我运行了一些命令行参数来修复变形的视频,它起作用了。可能我的诊断是错误的,PAR和DAR是完全错误的?

我用来“纠正”变形的代码是

代码语言:javascript
复制
--custom-anamorphic --display-width 1280 --keep-display-aspect --modulus 8 --crop 0:0:0:0

FFProbe有没有额外的命令来检测变形?到目前为止,我只是看看sample_aspect_ratio和display_aspect_ratio是否相同。

此外,0:1的比例似乎不正确。我的视频不是无限宽的。FFProbe输出有没有bug?

这是命令

代码语言:javascript
复制
-print_format json -show_format -show_streams {originalFilePath}

2013年6月27日构建的FFProbe版本N-54233-g86190af输出以下内容:

代码语言:javascript
复制
"Output{
    \"streams\": [
        {
            \"index\": 0,
            \"codec_name\": \"h264\",
            \"codec_long_name\": \"H.264/AVC/MPEG-4AVC/MPEG-4part10\",
            \"profile\": \"Main\",
            \"codec_type\": \"video\",
            \"codec_time_base\": \"1/5994\",
            \"codec_tag_string\": \"avc1\",
            \"codec_tag\": \"0x31637661\",
            \"width\": 1280,
            \"height\": 720,
            \"has_b_frames\": 0,
            \"sample_aspect_ratio\": \"0: 1\",
            \"display_aspect_ratio\": \"0: 1\",
            \"pix_fmt\": \"yuv420p\",
            \"level\": 31,
            \"r_frame_rate\": \"2997/100\",
            \"avg_frame_rate\": \"2997/100\",
            \"time_base\": \"1/2997\",
            \"start_pts\": 0,
            \"start_time\": \"0.000000\",
            \"duration_ts\": 204100,
            \"duration\": \"68.101435\",
            \"bit_rate\": \"3894381\",
            \"nb_frames\": \"2041\",
            \"disposition\": {
                \"default\": 0,
                \"dub\": 0,
                \"original\": 0,
                \"comment\": 0,
                \"lyrics\": 0,
                \"karaoke\": 0,
                \"forced\": 0,
                \"hearing_impaired\": 0,
                \"visual_impaired\": 0,
                \"clean_effects\": 0,
                \"attached_pic\": 0
            },
            \"tags\": {
                \"creation_time\": \"2013-05-0318: 33: 37\",
                \"language\": \"eng\",
                \"handler_name\": \"AppleAliasDataHandler\"
            }
        },
        {
            \"index\": 1,
            \"codec_name\": \"aac\",
            \"codec_long_name\": \"AAC(AdvancedAudioCoding)\",
            \"codec_type\": \"audio\",
            \"codec_time_base\": \"1/44100\",
            \"codec_tag_string\": \"mp4a\",
            \"codec_tag\": \"0x6134706d\",
            \"sample_fmt\": \"fltp\",
            \"sample_rate\": \"44100\",
            \"channels\": 2,
            \"bits_per_sample\": 0,
            \"r_frame_rate\": \"0/0\",
            \"avg_frame_rate\": \"0/0\",
            \"time_base\": \"1/44100\",
            \"start_pts\": 0,
            \"start_time\": \"0.000000\",
            \"duration_ts\": 3003392,
            \"duration\": \"68.104127\",
            \"bit_rate\": \"125304\",
            \"nb_frames\": \"2933\",
            \"disposition\": {
                \"default\": 0,
                \"dub\": 0,
                \"original\": 0,
                \"comment\": 0,
                \"lyrics\": 0,
                \"karaoke\": 0,
                \"forced\": 0,
                \"hearing_impaired\": 0,
                \"visual_impaired\": 0,
                \"clean_effects\": 0,
                \"attached_pic\": 0
            },
            \"tags\": {
                \"creation_time\": \"2013-05-0318: 33: 37\",
                \"language\": \"eng\",
                \"handler_name\": \"AppleAliasDataHandler\"
            }
        }
    ],
    \"format\": {
        \"filename\": \"\\\\\\\\dell690\\\\vsf\\\\_asset_intake\\\\v2\\\\ed69c939-4fe1-40dd-a045-db72ed2e0009\\\\original\\\\USTC_Overview2.mov\",
        \"nb_streams\": 2,
        \"format_name\": \"mov,
        mp4,
        m4a,
        3gp,
        3g2,
        mj2\",
        \"format_long_name\": \"QuickTime/MOV\",
        \"start_time\": \"0.000000\",
        \"duration\": \"68.100000\",
        \"size\": \"34267583\",
        \"bit_rate\": \"4025560\",
        \"tags\": {
            \"major_brand\": \"qt\",
            \"minor_version\": \"537199360\",
            \"compatible_brands\": \"qt\",
            \"creation_time\": \"2013-05-0318: 33: 37\"
        }
    }
}"
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-06-29 00:47:46

在把它带到FFMpeg团队之后,我看到0:1意味着PAR是未定义的,如果两者都是未定义的,它们将始终相等--这种情况很容易检测到。

票数 0
EN

Stack Overflow用户

发布于 2015-05-29 23:12:33

要检测视频是否变形,需要检查sample_aspect_ratio是否为非1:1。但是,sample_aspect_ratio为0:1表示未指定。在这种情况下,如果display_aspect_ratio也未指定(0:1),则它是非变形的。但是,如果指定了宽度,那么我们需要将宽度:高度与display_aspact_ratio进行比较,如果它们相同,则视频是非变形的,如果它们不同,则视频是变形的。

代码语言:javascript
复制
IsAnamorphic=
if sample_aspect_ratio=="1:1" then false
else if sample_aspact_ratio != "0:1" the true
else if display_aspect_ratio =="0:1" then false
else if display_aspect_ratio!=width:height then true
else false
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17353387

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档