问题 使用ffmpeg将文件从一种格式转换为另一种格式


我是新来的 ffmpeg 我试图找出如何将音频或视频文件从一种格式转换为另一种格式。我不想用 CLI,我只是想知道我是否可以使用 ffmpeg 作为库并调用函数将文件从一种格式转换为另一种格式。我浏览了文档并找到了函数 avcodec_encode_audio 和 avcodec_encode_video 但我不知道如何使用它来转换。教程或示例将非常有用。


5238
2017-11-10 07:05


起源



答案:


通常我通过命令行执行此操作

ffmpeg -i input.mp4 -vcodec copy -acodec copy out.mkv

这里i / p文件是input.mp4,它将被转换为out.mkv,具有相同的所有基本流的编解码器

注意:只有当.mkv容器支持input.mp4的所有编解码器时,upper命令才有效。 

如果您不关心编解码器,那么请使用

 ffmpeg -i input.mp4 out.mkv

这会将mp4转换为mkv(如果需要,它也会改变输出格式的编解码器)


10
2017-11-10 08:27



那是 CLI 命令行接口转换方式;)我打算调用一个定义的函数 ffmpeg 我的程序中的库如果可能的话。 - Pannu
嘿男人很好的答案..但是我不知道如何解决这个编解码器的问题...通常我没有指定编解码器格式(即我只是做 ffmpeg -i inputFile outputFile,但现在我正在从mp4转换为mp3 ..我收到此错误: Encoder (codec none) not found for output stream #0:0..查看完整的命令和错误日志 这里 - abbood
@abbood感谢man ..自从我在ffmpeg上工作已经2年了。所以现在不太了解,但似乎你的ffmpeg没有安装或不支持你的outputFile的容器格式支持编解码器的编码器库,所以需要安装它或者提供支持的编解码器名称来通过CLI编码流 - Jeegar Patel


答案:


通常我通过命令行执行此操作

ffmpeg -i input.mp4 -vcodec copy -acodec copy out.mkv

这里i / p文件是input.mp4,它将被转换为out.mkv,具有相同的所有基本流的编解码器

注意:只有当.mkv容器支持input.mp4的所有编解码器时,upper命令才有效。 

如果您不关心编解码器,那么请使用

 ffmpeg -i input.mp4 out.mkv

这会将mp4转换为mkv(如果需要,它也会改变输出格式的编解码器)


10
2017-11-10 08:27



那是 CLI 命令行接口转换方式;)我打算调用一个定义的函数 ffmpeg 我的程序中的库如果可能的话。 - Pannu
嘿男人很好的答案..但是我不知道如何解决这个编解码器的问题...通常我没有指定编解码器格式(即我只是做 ffmpeg -i inputFile outputFile,但现在我正在从mp4转换为mp3 ..我收到此错误: Encoder (codec none) not found for output stream #0:0..查看完整的命令和错误日志 这里 - abbood
@abbood感谢man ..自从我在ffmpeg上工作已经2年了。所以现在不太了解,但似乎你的ffmpeg没有安装或不支持你的outputFile的容器格式支持编解码器的编码器库,所以需要安装它或者提供支持的编解码器名称来通过CLI编码流 - Jeegar Patel