abd*_*man 3 compression audio video android ffmpeg
我正在尝试在我的项目中添加压缩视频文件的功能。但是,我尝试在压缩之前使用 FFMPEG 库从原始视频文件中提取音频。命令行是
-i video.mp4 -c:a aac -b:a 160k target.m4a
Run Code Online (Sandbox Code Playgroud)
编码完成后,我注意到输出仍然是视频文件,但大小有所不同。这给我带来了两个问题,我想知道他们的答案。
1 - “.m4a”文件可以被视为视频文件吗?
2 - 我可以使用此命令行来压缩视频文件吗?
此致
执行命令后记录
-i video.mp4 -c:a aac -b:a 160k target.m4a
Run Code Online (Sandbox Code Playgroud)
1 - “.m4a”文件可以被视为视频文件吗?
是的。如果您的输入包含视频,那么您的输出也会包含视频,因为默认情况下 ffmpeg 会自动从输入中为每种流类型选择一个流以映射到输出。
至于扩展名.m4a旨在用于音频文件,但我怀疑它在功能上与.m4v和不同.mp4。
2 - 我可以使用此命令行来压缩视频文件吗?
是的,事实上您的命令确实压缩了视频和音频。
如果您想提取音频,您需要告诉 ffmpeg 您想要哪些流,并告诉它流复制(重新复用)而不重新编码。仅包含音频流:
ffmpeg -i input.mp4 -map 0:a -c copy output.m4a
Run Code Online (Sandbox Code Playgroud)
或者排除视频:
ffmpeg -i input.mp4 -vn -c copy output.m4a
Run Code Online (Sandbox Code Playgroud)
我更喜欢,-map因为它更灵活;我几乎从不使用-vn、-an、-sn或-dn。