![我应该使用 ffmpeg 来获得 videoCodecId = 2 还是 7?](https://linux22.com/image/1277509/%E6%88%91%E5%BA%94%E8%AF%A5%E4%BD%BF%E7%94%A8%20ffmpeg%20%E6%9D%A5%E8%8E%B7%E5%BE%97%20videoCodecId%20%3D%202%20%E8%BF%98%E6%98%AF%207%EF%BC%9F.png)
我正在使用 ffmpeg 将我的视频文件转换为 flv。
我的问题是,我希望转换后的 flv 文件具有videoCodecId
和audioCodecId = 2
,因为我在转换后的文件中注入关键帧并将其用于渐进式流式传输。
但是当我尝试使用带有videoCodecId = 7
和的文件进行渐进式流式传输时auddioCodecId = 10
,我无法使文件正常运行。(也许我在这里也做错了什么)
我尝试用两种方式转换同一个文件:
首先
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
其他方法保留了
videoCodecId = 2
和audioCodecId = 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(我猜)
我现在对此非常困惑。几天来我一直在努力弄清楚。
任何帮助或建议都将受到赞赏。