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

使用ffmpeg从mp4文件解复用音频(AMR_WB)和视频(H264),ffmpeg,h.264,Ffmpeg,H.264,我想从mp4文件中解复用音频(AMR_WB)和视频(H264)。我需要写一个程序,它使用ffmpeg库来实现这一点 在FFMPEG示例中的demuxing.c文件中,我只能得到原始格式作为输出 我是否可以修改该代码以从mp4文件中获得编码格式的H264和AMR_WB?运行ffmpeg两次,每次指定仅复制到输出的一个曲目 diff mp4上的示例将提供您需要根据容器中相应视频/音频的特定曲目类型进行调整的大部分想法 MP4示例:解复用h264和aac跟踪以分离输出(tout1、tout2) 输入内

我想从mp4文件中解复用音频(AMR_WB)和视频(H264)。我需要写一个程序,它使用ffmpeg库来实现这一点

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


我是否可以修改该代码以从mp4文件中获得编码格式的H264和AMR_WB?

运行ffmpeg两次,每次指定仅复制到输出的一个曲目

diff mp4上的示例将提供您需要根据容器中相应视频/音频的特定曲目类型进行调整的大部分想法

MP4示例:解复用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,拿到视频

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

第二关,拿澳元

ffmpeg-i phoneCam_20120902_112701.mp4-地图0:1-c aac-ar 48000-ab 48000-严格-2.3总成


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

,但为什么输出会显示使用ffplay-f rawvideo-pix_fmt yuv420p-video_size 450x360 out.h264播放输出文件?另外,当我对输出文件执行file命令时,它说的是PEX二进制存档。没有提到任何关于H264的内容。我从解复用中得到的文件大小是输入文件大小的100倍。但是,当我运行命令行任务,使用demoxing命令进行解复用时,解复用的视频文件(即,我得到的h264文件)的大小与输入文件的大小大致相同。所以我在demuxing.c中得到的大部分输出都是原始格式的。谢谢,但我不想使用命令行。我正在尝试使用ffmpeg库编写一个程序,它将解复用audio和video.pl,查看ffmpeg中的doc/examples/demuxing.c文件。