我知道如果我知道视频是如何提前旋转的,我可以使用transpose视频过滤器转置视频,并使用类似于此-metadata:s:v:0 rotate=0的内容更新元数据,但如何根据视频中的元数据旋转位使用正确的转置值?基本上,我希望将旋转信息烘焙到视频数据本身中,并清除旋转元数据。
是否可以单独使用ffmpeg来实现这一点,或者我是否必须编写某种脚本来提取旋转值,并使用适当的选项调用ffmpeg?如果是后者,有没有人已经有了一个可以工作的脚本?:)我认为this是一个人使用exiftool和rails的方法;有没有可能不使用它?
发布于 2014-07-10 17:29:49
旋转信息属于“视频流”,而不是你需要查看AVStream.metadata的视频文件(也有音频流).so。
AVFormatContext *inputFormatCtx = ...;
for(int i=0; i<inputFormatCtx->nb_streams; i++) {
if(inputFormatCtx->streams[i]->codec->codec_type==AVMEDIA_TYPE_VIDEO) {
AVDictionary* metadata = (AVDictionary*)inputFormatCtx->streams[i]->metadata;
for(int i =0;i<metadata->count;i++)
{
AVDictionaryEntry entity = (AVDictionaryEntry)(metadata->elems[i]);
LOGD("metadata %s %s",entity.key,entity.value);
}
break;
}
}https://stackoverflow.com/questions/22802537
复制相似问题