FFMPEG:是否有可能在新的 API 中获得 coded_width?
FFMPEG: Is it possible to get coded_width in new API?
考虑以下代码(为简洁起见未进行初始化)。
AVFormatContext *formatCtx;
int coded_width = formatCtx->streams[videoStreamIndex]->codec->coded_width;
在旧的 API 中,可以通过这种方式获得 coded_width
和 coded_height
。目前它已被弃用。有 AVCodecParameters
struct 但它只提供:
int width
int height
可能不同于
int coded_width
int coded_height
那么,是否可以在不使用已弃用的 streams[videoStreamIndex]->codec
的情况下获得 coded_width?
为了获得 coded_width 和 coded_height 你也可以使用 ffprobe
,如果你 运行 :
ffprobe -show_streams -i video.mp4
您将获得一个包含 coded_width & coded_height 的流对象:
index=0
codec_name=h264
codec_long_name=H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10
profile=High
codec_type=video
codec_time_base=9772827/468627200
codec_tag_string=avc1
codec_tag=0x31637661
width=1280
height=720
coded_width=1280
coded_height=720
has_b_frames=2
根据最新的 doxygen 文档,这些仍然有效并且目前在 ffmpeg 中使用:
声明(w/o deprecated
pragma):
https://www.ffmpeg.org/doxygen/trunk/structAVCodecContext.html#ae3c157e97ff15d46e898a538c6bc7f09
用于:
https://www.ffmpeg.org/doxygen/trunk/qsvdec_8c-example.html#a21
希望对您有所帮助。
对于迟到的回复,我深表歉意。根据@the kamilz 的回复,最好的解决方案似乎只是在头文件中抑制此警告。 (我正在使用 gcc 编译器)。
#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
考虑以下代码(为简洁起见未进行初始化)。
AVFormatContext *formatCtx;
int coded_width = formatCtx->streams[videoStreamIndex]->codec->coded_width;
在旧的 API 中,可以通过这种方式获得 coded_width
和 coded_height
。目前它已被弃用。有 AVCodecParameters
struct 但它只提供:
int width
int height
可能不同于
int coded_width
int coded_height
那么,是否可以在不使用已弃用的 streams[videoStreamIndex]->codec
的情况下获得 coded_width?
为了获得 coded_width 和 coded_height 你也可以使用 ffprobe
,如果你 运行 :
ffprobe -show_streams -i video.mp4
您将获得一个包含 coded_width & coded_height 的流对象:
index=0
codec_name=h264
codec_long_name=H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10
profile=High
codec_type=video
codec_time_base=9772827/468627200
codec_tag_string=avc1
codec_tag=0x31637661
width=1280
height=720
coded_width=1280
coded_height=720
has_b_frames=2
根据最新的 doxygen 文档,这些仍然有效并且目前在 ffmpeg 中使用:
声明(w/o deprecated
pragma):
https://www.ffmpeg.org/doxygen/trunk/structAVCodecContext.html#ae3c157e97ff15d46e898a538c6bc7f09
用于:
https://www.ffmpeg.org/doxygen/trunk/qsvdec_8c-example.html#a21
希望对您有所帮助。
对于迟到的回复,我深表歉意。根据@the kamilz
#pragma GCC diagnostic ignored "-Wdeprecated-declarations"