命令:

ffmpeg -i AmericanCaptain.mkv -map 0:v -vcodec copy -map 0:a:1 -acodec copyAmericanCaptain.mp4 -strict -2 
命令说明: 0:v 代表提取所有视频流(一般视频流只有1路)

0:a:1 代表提取第2路音频流

这个MKV是有2个音轨的,第一个为英文,第二个为中文,若不清楚原文件的信息,输入ffmpeg-i AmericanCaptain.mkv查看。

下面是我的文件信息。

Input #0, matroska,webm, from 'AmericanCaptain.mkv':
  Metadata:
    creation_time   : 2014-04-06 07:05:17
  Duration: 02:04:11.58, start: 0.000000, bitrate: 2497 kb/s
    Stream #0:0: Video: h264 (High), yuv420p, 1280x720 [SAR 1:1 DAR 16:9], 23.98 fps, 23.98 tbr, 1k tbn, 47.95 tbc (default)
    Stream #0:1(eng): Audio: ac3, 48000 Hz, stereo, fltp, 448 kb/s (default)
    Metadata:
      title           : 英语
    Stream #0:2(chi): Audio: ac3, 48000 Hz, stereo, fltp, 448 kb/s
    Metadata:
      title           : 国语

如下查看视频信息:

ffmpeg -i qianyan.trec

结果如下:

ffmpeg version N--g183fd30 Copyright (c) - the FFmpeg developers
built with gcc 7.2. (GCC)
configuration: --enable-gpl --enable-version3 --enable-cuda --enable-cuvid --enable-d3d11va --enable-dxva2 --enable-libmfx --enable-nvenc --enable-avisynth --e
-enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libfreetype --enable-libgme --enable-libgsm --enable-
-enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenh264 --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libsnappy --enable-libs
-libtwolame --enable-libvidstab --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265
l2 --enable-libzimg --enable-lzma --enable-zlib
libavutil . 76.100 / . 76.100
libavcodec 57.106. / 57.106.
libavformat . 82.101 / . 82.101
libavdevice . 8.101 / . 8.101
libavfilter 6.105. / 6.105.
libswscale . 7.103 / . 7.103
libswresample . 8.100 / . 8.100
libpostproc . 6.100 / . 6.100
Input #, mov,mp4,m4a,3gp,3g2,mj2, from 'qianyan.trec':
Metadata:
major_brand : mp42
minor_version :
compatible_brands: mp42isom
creation_time : --13T05::.000000Z
Duration: ::03.04, start: 0.000000, bitrate: kb/s
Stream #:(und): Video: tscc2 (tsc2 / 0x32637374), yuv444p, 1916x1040, kb/s, 27.87 fps, tbr, tbn, tbc (default)
Metadata:
creation_time : --13T05::.000000Z
Stream #:(und): Video: h264 (Baseline) (avc1 / 0x31637661), yuv420p(tv), 640x480 [SAR : DAR :], kb/s, fps, tbr, 30k tbn, tbc (default)
Metadata:
creation_time : --13T05::.000000Z
encoder : JVT/AVC Coding
Stream #:(und): Audio: aac (LC) (mp4a / 0x6134706D), Hz, stereo, fltp, kb/s (default)
Metadata:
creation_time : --13T05::.000000Z
At least one output file must be specified

以上有两个视频轨,一个音频轨,导出第一个视频轨为图片

ffmpeg -i qianyan.trec -map :v: -r  -f image2 image-%05d.jpeg

from:http://blog.csdn.net/season_hangzhou/article/details/27503421

【转】用ffmpeg转多音轨的mkv文件的更多相关文章

  1. 用Python和FFmpeg查找大码率的视频文件

    用Python和FFmpeg查找大码率的视频文件 本文使用Python2.7, 这个工作分两步 遍历目录下的视频文件 用ffprobe获取是视频文件的码率信息 用ffprobe 获取json格式的视频 ...

  2. FFmpeg编译找不到库文件

    在编译FFmpeg的时候,用./configure 进行配置,经常会出现找不到库文件的情况,原因大概就两个: 1.没有安装库文件或者安装的库文件版本不对 2.FFmpeg没有找到库文件 前者的问题好解 ...

  3. FFmpeg开发实战(六):使用 FFmpeg 将YUV数据编码为视频文件

    本文中实现的一个小功能是把一个YUV原始视频数据(时间序列图像)经过h264编码为视频码流,然后在使用mp4封装格式封装. 编码&封装的流程图如下: 使用ffmpeg编码流程: 1.首先使用a ...

  4. ubuntu64,ndk-r9 编译 ffmpeg 2.1.1的config文件

    #!/bin/bash NDK_ROOT=/home/wjh/fox/android-ndk-r9c/ PREBUILT=${NDK_ROOT}toolchains/arm-linux-android ...

  5. ffmpeg接收udp输入的h264文件流,推流到rtmp服务器

    ffmpeg -re -f h264 -i udp://192.168.5.49:10002 -vcodec libx264 -f flv rtmp://192.168.5.155/live/1

  6. 【转】ubuntu64,ndk-r9 编译 ffmpeg 2.1.1的config文件

    #!/bin/bash NDK_ROOT=/home/wjh/fox/android-ndk-r9c/ PREBUILT=${NDK_ROOT}toolchains/arm-linux-android ...

  7. ffmpeg使用转码学习

    ffmpeg在官网上描述自身:是一个对视频和音频进行记录,转换,流化的完整的跨平台解决方案.事实上,现在有很多工具都是基于ffmpeg来进行视频音频的处理工具的.比如鼎鼎大名的格式工厂,就是使用ffm ...

  8. ffmpeg 命令

    1.保存文件: ffmpeg -i rtsp://admin:12345@172.29.61.108/Streaming/Channels/1 -vcodec copy -acodec libvo_a ...

  9. ffmpeg, libav学习记录

    转载自:http://hi.baidu.com/y11022053/item/81f12035182257332e0f8196 一个偶然遇到了ffmpeg,看起来不多,而且通用性很强,算是一个扎实的技 ...

随机推荐

  1. 如何给localStorage设置一个过期时间?

    原文:如何给localStorage设置一个过期时间? 作者:苏南 - 首席填坑官 公众号:IT平头哥联盟 Fundebug经授权转载,版权归原作者所有. 引言 这个话题其实在上次分享已经讲过(大佬可 ...

  2. ES6之Object.assign()详解

    译者按: 这篇博客将介绍ES6新增的Object.assign()方法. 原文: ECMAScript 6: merging objects via Object.assign() 译者: Funde ...

  3. js 策略模式 实现表单验证

    策略模式 简单点说就是:实现目标的方式有很多种,你可以根据自己身情况选一个方法来实现目标. 所以至少有2个对象 .  一个是策略类,一个是环境类(上下文). 然后自己就可以根据上下文选择不同的策略来执 ...

  4. js 对象转数组

    function objToArray(array) { var arr = [] for (var i in array) { arr.push(array[i]); } console.log(a ...

  5. vuejs2.0实现分页组件,使用$emit进行事件监听数据传递

    上一篇文章介绍了vuejs实现的简单分页,如果我有几个页面都需要有分页效果,不可能每个页面都去复制一下这段代码吧,意思是封装一下,变成通用的组件. 首先使用基础 Vue 构造器,创建一个“子类”,Vu ...

  6. 2018-09-28 用Python3和tkinter开发简单图形界面程序

    源码库: program-in-chinese/wubi_code_editor 起因在这里. 由于此项目和汉字相关, 个人也想尝试Python的图形界面开发, 于是开始尝试. 遇到的一个坑. 用户测 ...

  7. 【20190226】CSS-知识点记录::nth-child,:nth-of-type

    :nth-child: ele:nth-child(k):选择父元素下第k个子元素,且该子元素为ele,若不是,则选择失败,k从1开始计数 ele:nth-child(-n+5):选中前五个子元素,n ...

  8. css小知识

    7. span { display:inline-block; width:70px; /* 超出长度以...显示 */ text-overflow: ellipsis; white-space: n ...

  9. Dynamics 365 Online-Unified User Interface

    为了加强界面的一致性,提高用户体验,Dynamics 365 Online V9发布了新的Interface:Unified User Interface. 区别于旧的Regular UI,UUI自适 ...

  10. loadrunner 脚本优化-参数化之场景中的参数化取值

    脚本优化-场景中的参数化取值 by:授客 QQ:1033553122   Action() { lr_eval_string("{NewParam}"); lr_eval_stri ...