是否可以使用 ffmpeg 合并文件,并使用 VITC 转码为 MXF IMX30

是否可以使用 ffmpeg 合并文件,并使用 VITC 转码为 MXF IMX30

ffmpeg 能转码为 IMX30 MXF 吗?我有几个 DVCPRO MOV 文件,我想将它们合并为一个,然后使用 VITC 转码为 IMX30 MXF,因为我的程序只能正确处理这种格式的视频。

我知道如何将文件合并在一起ffmpeg -f concat -i "filestoconcat.txt" -c copy "output.mov"。相当简单,而且效果很好。

但我不知道是否还可以将生成的文件转码为 IMX30 MXF。最好同时进行连接。

对其中一个文件进行 ffprobe:

C:\ffmpeg>ffprobe C:\Archive\2001_01_23.mov
ffprobe version N-66860-g5552594 Copyright (c) 2007-2014 the FFmpeg developers
  built on Oct 15 2014 00:14:28 with gcc 4.9.1 (GCC)
  configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-av
isynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enab
le-iconv --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --
enable-libfreetype --enable-libgme --enable-libgsm --enable-libilbc --enable-lib
modplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrw
b --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libschroedinge
r --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --en
able-libvidstab --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-libvorbis
 --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-
libx265 --enable-libxavs --enable-libxvid --enable-zlib
  libavutil      54. 10.100 / 54. 10.100
  libavcodec     56.  5.100 / 56.  5.100
  libavformat    56.  9.100 / 56.  9.100
  libavdevice    56.  1.100 / 56.  1.100
  libavfilter     5.  1.106 /  5.  1.106
  libswscale      3.  1.101 /  3.  1.101
  libswresample   1.  1.100 /  1.  1.100
  libpostproc    53.  3.100 / 53.  3.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'C:\Archive\2001_01_23.mov':
  Metadata:
    major_brand     : qt
    minor_version   : 512
    compatible_brands: qt
    encoder         : Lavf57.25.100
  Duration: 00:14:51.08, start: 0.000000, bitrate: 30338 kb/s
    Stream #0:0(eng): Video: dvvideo (dvpp / 0x70707664), yuv411p, 720x576 [SAR
64:45 DAR 16:9], 28800 kb/s, 25 fps, 25 tbr, 12800 tbn, 25 tbc (default)
    Metadata:
      handler_name    : DataHandler
      encoder         : Lavc57.24.102 dvvideo
      timecode        : 00:00:00:00
    Stream #0:1(eng): Audio: pcm_s16le (sowt / 0x74776F73), 48000 Hz, stereo, s1
6, 1536 kb/s (default)
    Metadata:
      handler_name    : DataHandler
    Stream #0:2(eng): Data: none (tmcd / 0x64636D74)
    Metadata:
      handler_name    : DataHandler
      timecode        : 00:00:00:00
Unsupported codec with id 0 for input stream 2

答案1

MPEG IMX 是索尼公司用于356M 标准标准,也称为 D10。FFmpeg 确实有一个 MXF-D10 多路复用器。因此,首先更新您的 ffmpeg二进制然后首先使用单个文件尝试此操作并在您的应用程序中进行测试:

ffmpeg -i input.mov -map 0:v -map 0:a -timecode 00:00:00:00
       -c:v mpeg2video -pix_fmt yuv422p -r 25 -b:v 30000k -minrate 30000k -maxrate 30000k
       -bufsize 1200000 -rc_init_occupancy 1200000 -rc_max_vbv_use 1 -rc_min_vbv_use 1  
       -intra -flags +ildct+low_delay -intra_vlc 1 -non_linear_quant 1
       -ps 1 -qmin 1 -qmax 3 -top 1 -dc 10 
       -c:a pcm_s16le -ar 48000 -d10_channelcount 2
       -f mxf_d10 output.mxf

如果上述方法有效,那么

ffmpeg -f concat -i "filestoconcat.txt" -map 0:v -map 0:a -timecode 00:00:00:00
       -c:v mpeg2video -pix_fmt yuv422p -r 25 -b:v 30000k -minrate 30000k -maxrate 30000k
       -bufsize 1200000 -rc_init_occupancy 1200000 -rc_max_vbv_use 1 -rc_min_vbv_use 1  
       -intra -flags +ildct+low_delay -intra_vlc 1 -non_linear_quant 1
       -ps 1 -qmin 1 -qmax 3 -top 1 -dc 10 
       -c:a pcm_s16le -ar 48000 -d10_channelcount 2
       -f mxf_d10 joined.mxf

相关内容