【转】用ffmpeg转多音轨的mkv文件
命令:
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文件的更多相关文章
- 用Python和FFmpeg查找大码率的视频文件
用Python和FFmpeg查找大码率的视频文件 本文使用Python2.7, 这个工作分两步 遍历目录下的视频文件 用ffprobe获取是视频文件的码率信息 用ffprobe 获取json格式的视频 ...
- FFmpeg编译找不到库文件
在编译FFmpeg的时候,用./configure 进行配置,经常会出现找不到库文件的情况,原因大概就两个: 1.没有安装库文件或者安装的库文件版本不对 2.FFmpeg没有找到库文件 前者的问题好解 ...
- FFmpeg开发实战(六):使用 FFmpeg 将YUV数据编码为视频文件
本文中实现的一个小功能是把一个YUV原始视频数据(时间序列图像)经过h264编码为视频码流,然后在使用mp4封装格式封装. 编码&封装的流程图如下: 使用ffmpeg编码流程: 1.首先使用a ...
- 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 ...
- 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
- 【转】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 ...
- ffmpeg使用转码学习
ffmpeg在官网上描述自身:是一个对视频和音频进行记录,转换,流化的完整的跨平台解决方案.事实上,现在有很多工具都是基于ffmpeg来进行视频音频的处理工具的.比如鼎鼎大名的格式工厂,就是使用ffm ...
- ffmpeg 命令
1.保存文件: ffmpeg -i rtsp://admin:12345@172.29.61.108/Streaming/Channels/1 -vcodec copy -acodec libvo_a ...
- ffmpeg, libav学习记录
转载自:http://hi.baidu.com/y11022053/item/81f12035182257332e0f8196 一个偶然遇到了ffmpeg,看起来不多,而且通用性很强,算是一个扎实的技 ...
随机推荐
- Java中的匿名内部类及内部类的二三事
匿名内部类适合创建那些只需要使用一次的类,它的语法有些奇怪,创建匿名内部类会立即创建一个该类的实例,这个类定义立即消失,且不能重复使用. 定义匿名类的格式如下: new 实现接口() |父类构造器(实 ...
- Python 常用系统模块整理
Python中的常用的系统模块中部分函数等的整理 random: 随机数 sys: 系统相关 os: 系统相关的 subprocess: 执行新的进程 multiprocessing: 进程相关 th ...
- Fundebug累计处理1000万条错误事件!
摘要上线半年时间,Fundebug累计处理1000万条错误事件.10000000啊! 自从去年双11[正式上线](https://blog.fundebug.com/2016/11/11/fundeb ...
- 如何处理Express异常?
译者按:根据墨菲定律:“有可能出错的事情,就会出错”.那么,既然代码必然会出错,我们就应该处理好异常. 原文: How to handle errors in Express 译者:Fundebug ...
- Could not open input file: artisan 【Laravel初体验】
1,情景描述:在命令行窗口写入php artisan make:model Models\MenuModel用于创建模型时,出现此错误(Could not open input file: artis ...
- 一些你可能不熟悉的JS知识点总结
js代码暂时性死区 只要块级作用域存在let命令,它所声明的变量就“绑定”这个区域,不再受外部的影响.这么说可能有些抽象,举个例子: ? 1 2 3 4 5 var temp = 123; if(tr ...
- Android 弹性布局 FlexboxLayout了解一下
原文链接:https://mp.weixin.qq.com/s/Mi3cK7xujmEMI_rc51-r4g RelativeLayout.LinearLayout等常用布局相信大家早已耳熟能详,今天 ...
- JMeter 报告监听器导入.jtl结果文件报错解决方案
JMeter 报告监听器导入.jtl结果文件报错解决方案 by:授客 QQ:1033553122 1. 问题描述 把jmeter压测时生成的 .jtl结果文件导入监听器报告中,弹出如下错误提示 ...
- Java相关问题整理
1. OkHttpClient调用出现大量CLOSE_WAIT. 问题定位: 凡是系统中出现大量的CLOSE_WAIT,说明你的代码写的有问题,即:没有关闭连接. 在OkHttpClient中,默认时 ...
- Android 如何解决dialog弹出时无法捕捉Activity的back事件
Android 如何解决dialog弹出时无法捕捉Activity的back事件 在一些情况下,我们需要捕捉back键事件,然后在捕捉到的事件里写入我们需要进行的处理,通常可以采用下面三种办法捕捉到b ...