为“ffmpeg”工具构建特定要求的命令

为“ffmpeg”工具构建特定要求的命令

来源社区

我一直在尝试找出具有以下要求的 ffmpeg 命令,同时使用 H264 视频编解码器将“avi”转换为“mp4”。我尝试过的一个命令是大多数论坛上推荐的通用命令。

ffmpeg -I input.avi -acodec copy -vcodec copy output.mp4

但是这会复制相同的视频编解码器并且不会转换为 H264。你们中有人能帮我编写一行代码来完成以下要求的任务吗?

=> 视频选项

编解码器:H264 视频宽高比:无变化 视频分辨率:无变化 视频 FPS:无变化

=> 音频选项

编解码器:AC 音频通道:无变化 音频频率:无变化 音频标准化:无变化

提前致谢!

答案1

让我们枚举一下参数ffmpeg

  • -acodec写得更好-c:a(音频的menmonic编解码器)
  • -vcodec写得更好-c:v(相同的助记符)
  • -i是输入文件(不是-I

ffmpeg根据文件扩展名进行了很好的猜测,因此执行以下操作:

ffmpeg -i file.wem file.mp4

会转换一些东西,但质量可能很差。


因为H264你在libx264编解码器之后,所以它应该是:

ffmpeg -i file.avi -c:v libx264 -c:a copy file.mp4

作为测试,我们使用经典webm示例:

$ wget http://video.webmfiles.org/big-buck-bunny_trailer.webm
...
$ ffmpeg -i big-buck-bunny_trailer.webm -c:a copy -c:v libx264 bbb.mp4
...
$ ffprobe bbb.mp4
    Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'bbb.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    encoder         : Lavf57.41.100
  Duration: 00:00:32.50, start: 0.000000, bitrate: 414 kb/s
    Stream #0:0(eng): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 640x360 [SAR 1:1 DAR 16:9], 341 kb/s, 25 fps, 25 tbr, 12800 tbn, 50 tbc (default)
    Metadata:
      handler_name    : VideoHandler
    Stream #0:1(eng): Audio: vorbis (mp4a / 0x6134706D), 44100 Hz, mono, fltp, 64 kb/s (default)
    Metadata:
      handler_name    : SoundHandler

这看起来很有希望,流 #0:0 是 H264 编码的视频流。

相关内容