我想使用 FFMPEG 编码为 XDCAM HD422 MXF 文件。我已经搜索过,但找不到正确的命令行参数来使用。
编码符合 XDCAM 的输出文件需要哪些命令行参数?
当您不确切知道如何设置某些容器和/或编解码器时,请始终使用
avformat_alloc_output_context2()
从文件扩展名(本例中为“mxf”)猜测格式,这样您就可以开始了!
AVFormatContext * formatContext( 0 );
avformat_alloc_output_context2( &formatContext, 0, 0, "anything.mxf" );
执行此操作时,
formatContext
将设置已设置的默认编解码器,请将它们与:
m_formatContext->oformat->video_codec
m_formatContext->oformat->audio_codec
对于“mxf”,默认音频/视频编解码器 AV_CODEC_ID_MPEG2VIDEO 和 AV_CODEC_ID_PCM_S16LE
但是,在这种情况下,默认设置是不够的。您有特定的相机型号。因此,通过一些示例视频,您可以使用
ffprobe some_sample.mxf
检查确切的格式/编解码器
我在这里找到了这些示例:http://www.hamburgpromedia.com/Testfiles/MXF_MPEG_Testfiles.php
FFprobe 告诉我视频编解码器与“mxf”的默认编解码器相同(AV_CODEC_ID_MPEG2VIDEO),但音频编解码器是AV_CODEC_ID_PCM_S24LE。
那么,现在该怎么办?只需更改audio_codec即可:
m_formatContext->oformat->audio_codec = AV_CODEC_ID_PCM_S24LE;
准备好了!您的相机具有相同的格式和编解码器!只需继续创建音频/视频流、打开编解码器等...