Способен ли ffmpeg транскодировать в IMX30 MXF? У меня есть несколько файлов в DVCPRO MOV, которые я хочу объединить в один, перекодировать в IMX30 MXF с VITC, поскольку у меня есть программа, которая способна правильно работать только с этим форматом видео.

Я выяснил, как объединить файлы вместе 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 ответ1

1

MPEG IMX - это имя, используемое Sony для стандарта SMPTE 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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .