我正在尝试使用 FFMPEG 将 MXF 视频和音轨放入单个 MOV 容器中。我想保留现有的视频格式。我的 FFMPEG 构建参数如下:
ffmpeg version N-52045-g694fa00
built on Apr 12 2013 17:00:02 with gcc 4.8.0 (GCC)
configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-avisynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enable-iconv --enable-libass --enabl
e-libbluray --enable-libcaca --enable-libfreetype --enable-libgsm --enable-libilbc --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-lib
opus --enable-librtmp --enable-libschroedinger --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-libvorbis --en
able-libvpx --enable-libx264 --enable-libxavs --enable-libxvid --enable-zlib
libavutil 52. 26.100 / 52. 26.100
libavcodec 55. 2.100 / 55. 2.100
libavformat 55. 2.100 / 55. 2.100
libavdevice 55. 0.100 / 55. 0.100
libavfilter 3. 53.101 / 3. 53.101
libswscale 2. 2.100 / 2. 2.100
libswresample 0. 17.102 / 0. 17.102
libpostproc 52. 3.100 / 52. 3.100
我首先尝试进行音频和视频传输:
ffmpeg -i "C:\Sample\video.mxf" -i "C:\Sample\audioOne.mxf" -i "C:\Sample\audioTwo.mxf" -map 0 -c:v copy -map 1 -map 2 -c:a copy sampleOut.mov
这会导致出现以下错误:尚不支持数据流编码(仅限流复制)。
无法让它工作所以我尝试稍微简化一下并只进行视频转换:
ffmpeg -i "C:\Sample\video.xml" -c:v copy test.mov
但这会导致错误提示:****输出文件 #0 不包含任何流。**
还尝试了选项(-vcodec copy,错误相同)。根据 MediaInfo,我的 MXF 是有效流。
Video
ID : 1
Format : VC-3
Format_Settings_Wrapping : Clip
Codec ID : 4B464141000D4D4F-0E04020102040100
Duration : 35s 2ms
Bit rate mode : Constant
Bit rate : 145 Mbps
Width : 1 920 pixels
Height : 1 080 pixels
Display aspect ratio : 16:9
Frame rate : 29.970 fps
Color space : YUV
Chroma subsampling : 4:2:2
Bit depth : 8 bits
Scan type : Progressive
Bits/(Pixel*Frame) : 2.339
Stream size : 606 MiB (100%)
我是否需要特殊构建或者我是否缺少一些更改容器的命令?
编辑:
以下是我尝试拼接音频和视频的第一个命令的 FFMPEG 响应:
Input #0, mxf, from 'C:\MXF\Sample\video.mxf':
Metadata:
product_name : Avid Media Toolkit
uid : 746488ad-3ee0-447b-9473-bc467dedde5c
generation_uid : 9f1a9ae1-0cbf-822f-cea4-f34822c44135
application_platform: Win32
modification_date:
product_uid : 00000000-0000-000a-060e-2b347f7f2a80
product_version : 2.2.1.53
company_name : Avid
Duration: 00:00:35.00, start: 0.000000, bitrate: 145505 kb/s
Stream #0:0: Data: none
Input #1, mxf, from 'C:\MXF\Sample\audio1.mxf':
Metadata:
product_name : Avid Media Toolkit
uid : 5489b584-3529-4e1a-92ee-77fad0dd9909
generation_uid : a74c9e25-f381-1ca1-8415-28324a9b45d9
application_platform: Win32
modification_date:
product_uid : 00000000-0000-000a-060e-2b347f7f2a80
product_version : 2.2.1.53
company_name : Avid
Duration: 00:00:35.00, start: 0.000000, bitrate: 928 kb/s
Stream #1:0: Data: none
Input #2, mxf, from 'C:\MXF\Sample\audio2.mxf':
Metadata:
product_name : Avid Media Toolkit
uid : dafe5f12-7e31-448d-b5eb-ab1d31f5ec65
generation_uid : 9bd46aa8-7107-3b41-3d16-2824563a43aa
application_platform: Win32
modification_date:
product_uid : 00000000-0000-000a-060e-2b347f7f2a80
product_version : 2.2.1.53
company_name : Avid
Duration: 00:00:35.00, start: 0.000000, bitrate: 928 kb/s
Stream #2:0: Data: none
Data stream encoding not supported yet (only streamcopy)
这是第二次尝试进行简单的视频转换:
nput #0, mxf, from 'C:\MXF\Sample\video.mxf':
Metadata:
product_name : Avid Media Toolkit
uid : 746488ad-3ee0-447b-9473-bc467dedde5c
generation_uid : 9f1a9ae1-0cbf-822f-cea4-f34822c44135
application_platform: Win32
modification_date:
product_uid : 00000000-0000-000a-060e-2b347f7f2a80
product_version : 2.2.1.53
company_name : Avid
Duration: 00:00:35.00, start: 0.000000, bitrate: 145505 kb/s
Stream #0:0: Data: none
Output #0, mov, to 'test.mov':
Metadata:
product_name : Avid Media Toolkit
uid : 746488ad-3ee0-447b-9473-bc467dedde5c
generation_uid : 9f1a9ae1-0cbf-822f-cea4-f34822c44135
application_platform: Win32
modification_date:
product_uid : 00000000-0000-000a-060e-2b347f7f2a80
product_version : 2.2.1.53
company_name : Avid
Output file #0 does not contain any stream
我也尝试过“-dcodec copy”和“-c:d”copy 的变体,但它不断出现该错误。我想知道是不是因为下面的编解码器(DnxHD)无法转换为 MOV?