我应该使用 ffmpeg 来获得 videoCodecId = 2 还是 7?

我应该使用 ffmpeg 来获得 videoCodecId = 2 还是 7?

我正在使用 ffmpeg 将我的视频文件转换为 flv。

我的问题是,我希望转换后的 flv 文件具有videoCodecIdaudioCodecId = 2,因为我在转换后的文件中注入关键帧并将其用于渐进式流式传输。

但是当我尝试使用带有videoCodecId = 7和的文件进行渐进式流式传输时auddioCodecId = 10,我无法使文件正常运行。(也许我在这里也做错了什么)

我尝试用两种方式转换同一个文件:

  1. 首先videoCodecId = 7,我audioCodecId = 10使用以下命令行来执行此操作:

    /usr/local/bin/ffmpeg -i %s -map_meta_data 0:0 -acodec libfaac -ab 96k -ar 44100 -vcodec libx264 -vpre hq -crf 20 -threads 0 -f flv %s

  2. 其他方法保留了videoCodecId = 2audioCodecId = 2(这是所希望的),但它对视频质量影响很大。

    /usr/local/bin/ffmpeg -i %s -map_meta_data 0:0 -ab 96k -ar 44100 -crf 20 -f flv %s

因此,这两种方法都可以帮助我解决问题,首先,我可以使用第二种方法转换后提高视频质量,或者,我可以让渐进式流媒体适用于文件videoCodecId = 7

但我读了几篇文章,甚至 YouTube 也使用带有videoCodecId = 2和 的视频audioCodecId = 2。所以他们这样做可能是有原因的。但如果我从 YouTube 下载一个文件,并使用 VLCplayer 查看其编解码器信息,它会显示视频编解码器 - h264 和音频为 mp4a,分别为 7 和 10(我猜)

我现在对此非常困惑。几天来我一直在努力弄清楚。

任何帮助或建议都将受到赞赏。

相关内容