使用ffmpeg从mp4文件中解复用音频(AMR_WB)和视频(H264)

时间:2013-01-26 17:24:46

标签: ffmpeg h.264

我想从mp4文件中解复用音频(AMR_WB)和视频(H264)。我需要编写一个使用ffmpeg库来执行此操作的程序。

在FFMPEG示例中的demuxing.c文件中,我只能将原始格式作为输出。

我能以某种方式修改该代码,以便从mp4文件中以编码格式获取H264和AMR_WB吗?

1 个答案:

答案 0 :(得分:0)

运行ffmpeg两次,每次指定只复制1个轨道输出。

关于diff mp4的示例将提供您需要适应容器中相应视频/音频的特定轨道类型的大部分想法......

MP4示例:demux h264和aac轨道分离输出(tout1,tout2)

输入什么?

Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'phoneCam_20120902_112701.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 0
    compatible_brands: isom3gp4
    creation_time   : 2012-09-02 18:27:14
  Duration: 00:00:12.65, start: 0.000000, bitrate: 8011 kb/s
    Stream #0:0(eng): Video: h264 (Baseline) (avc1 / 0x31637661), yuv420p, 1280x720, 7707 kb/s, SAR 65536:65536 DAR 16:9, 28.64 fps, 29.83 tbr, 90k tbn, 180k tbc
    Metadata:
      creation_time   : 2012-09-02 18:27:14
      handler_name    : VideoHandle
    Stream #0:1(eng): Audio: aac (mp4a / 0x6134706D), 48000 Hz, mono, s16, 96 kb/s

传递1,只需获得Vid

  

ffmpeg -i phoneCam_20120902_112701.mp4 -map 0:0 -c copy tout1.mp4

Pass2刚刚获得了审核

  

ffmpeg -i phoneCam_20120902_112701.mp4 -map 0:1 -c aac -ar 48000 -ab   48000 -strict -2 tout2.3gp

在你的程序中,只需从CLI运行ffmpeg或在ffmpeg.c中调用main()