ffmpeg可以识别MXF dv,但不会编码为h264 [英] ffmpeg recognises MXF dv but won't encode to h264

查看:494
本文介绍了ffmpeg可以识别MXF dv,但不会编码为h264的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个编码为MXF的DV文件,我想将其转码为h264.对文件运行ffmpeg可以正常读取并理解流,但不会写入h264文件.似乎所有流都正确无误,我可以确认视频和音频流的属性.

I have a DV file encoded as an MXF that I want to transcode to h264. Running ffmpeg against the file it reads ok and understands the stream but won't write the h264 file. It seems to get all the streams correct and I can confirm the attributes of video and audio streams.

我只是不明白为什么它不编码?我试图用-f dv强制解码器,但它抱怨源头不正确.

I just don't understand why it won't encode? I tried to force a Decoder with -f dv but it complained that the source header was incorrect.

 ./ffmpeg -f dv -i camb_onitefire_050914.mov  camb_onitefire_A.mp4
ffmpeg version 3.3.1 Copyright (c) 2000-2017 the FFmpeg developers
  built with llvm-gcc 4.2.1 (LLVM build 2336.11.00)
  configuration: --prefix=/Volumes/Ramdisk/sw --enable-gpl --enable-pthreads --enable-version3 --enable-libspeex --enable-libvpx --disable-decoder=libvpx --enable-libmp3lame --enable-libtheora --enable-libvorbis --enable-libx264 --enable-avfilter --enable-libopencore_amrwb --enable-libopencore_amrnb --enable-filters --enable-libgsm --enable-libvidstab --enable-libx265 --disable-doc --arch=x86_64 --enable-runtime-cpudetect
  libavutil      55. 58.100 / 55. 58.100
  libavcodec     57. 89.100 / 57. 89.100
  libavformat    57. 71.100 / 57. 71.100
  libavdevice    57.  6.100 / 57.  6.100
  libavfilter     6. 82.100 /  6. 82.100
  libswscale      4.  6.100 /  4.  6.100
  libswresample   2.  7.100 /  2.  7.100
  libpostproc    54.  5.100 / 54.  5.100
[dv @ 0x7fd6f4800000] Cannot find DV header.
camb_onitefire_050914.mov: Operation not permitted
Davids-MacBook-Pro:camb_onitefire_050914(1).vmf davidmcsween$ ./ffmpeg -i camb_onitefire_050914.mov camb_onitefire_A.mp4
ffmpeg version 3.3.1 Copyright (c) 2000-2017 the FFmpeg developers
  built with llvm-gcc 4.2.1 (LLVM build 2336.11.00)
  configuration: --prefix=/Volumes/Ramdisk/sw --enable-gpl --enable-pthreads --enable-version3 --enable-libspeex --enable-libvpx --disable-decoder=libvpx --enable-libmp3lame --enable-libtheora --enable-libvorbis --enable-libx264 --enable-avfilter --enable-libopencore_amrwb --enable-libopencore_amrnb --enable-filters --enable-libgsm --enable-libvidstab --enable-libx265 --disable-doc --arch=x86_64 --enable-runtime-cpudetect
  libavutil      55. 58.100 / 55. 58.100
  libavcodec     57. 89.100 / 57. 89.100
  libavformat    57. 71.100 / 57. 71.100
  libavdevice    57.  6.100 / 57.  6.100
  libavfilter     6. 82.100 /  6. 82.100
  libswscale      4.  6.100 /  4.  6.100
  libswresample   2.  7.100 /  2.  7.100
  libpostproc    54.  5.100 / 54.  5.100
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fe1fb000000] Skipped opening external track: stream 0, alias: path='/VibrintAVFiles/P2 News Ingest/camb_onitefire_050914(1).vmf/video.vid', dir='camb_onitefire_050914(1).vmf', filename='video.vid', volume='default', nlvl_from=1, nlvl_to=1.Set enable_drefs to allow this.
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fe1fb000000] Skipped opening external track: stream 1, alias: path='/VibrintAVFiles/P2 News Ingest/camb_onitefire_050914(1).vmf/audio_0.pcm', dir='camb_onitefire_050914(1).vmf', filename='audio_0.pcm', volume='default', nlvl_from=1, nlvl_to=1.Set enable_drefs to allow this.
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fe1fb000000] Skipped opening external track: stream 2, alias: path='/VibrintAVFiles/P2 News Ingest/camb_onitefire_050914(1).vmf/audio_1.pcm', dir='camb_onitefire_050914(1).vmf', filename='audio_1.pcm', volume='default', nlvl_from=1, nlvl_to=1.Set enable_drefs to allow this.
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fe1fb000000] Skipped opening external track: stream 3, alias: path='/VibrintAVFiles/P2 News Ingest/camb_onitefire_050914(1).vmf/audio_2.pcm', dir='camb_onitefire_050914(1).vmf', filename='audio_2.pcm', volume='default', nlvl_from=1, nlvl_to=1.Set enable_drefs to allow this.
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fe1fb000000] Skipped opening external track: stream 4, alias: path='/VibrintAVFiles/P2 News Ingest/camb_onitefire_050914(1).vmf/audio_3.pcm', dir='camb_onitefire_050914(1).vmf', filename='audio_3.pcm', volume='default', nlvl_from=1, nlvl_to=1.Set enable_drefs to allow this.
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fe1fb000000] Could not find codec parameters for stream 0 (Video: dvvideo (dvpp / 0x70707664), none, 720x576, 28800 kb/s): unspecified pixel format
Consider increasing the value for the 'analyzeduration' and 'probesize' options
Guessed Channel Layout for Input Stream #0.1 : mono
Guessed Channel Layout for Input Stream #0.2 : mono
Guessed Channel Layout for Input Stream #0.3 : mono
Guessed Channel Layout for Input Stream #0.4 : mono
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'camb_onitefire_050914.mov':
  Metadata:
    creation_time   : 2014-09-04T18:54:07.000000Z
  Duration: 00:17:47.18, start: 0.000000, bitrate: 1 kb/s
    Stream #0:0(eng): Video: dvvideo (dvpp / 0x70707664), none, 720x576, 28800 kb/s, SAR 118:81 DAR 295:162, 25 fps, 25 tbr, 2500 tbn, 2500 tbc (default)
    Metadata:
      creation_time   : 2014-09-04T18:54:07.000000Z
      handler_name    : Apple Alias Data Handler
      timecode        : 01:46:43:02
    Stream #0:1(eng): Audio: pcm_s16le (sowt / 0x74776F73), 48000 Hz, mono, s16, 768 kb/s (default)
    Metadata:
      creation_time   : 2014-09-04T18:54:07.000000Z
      handler_name    : Apple Alias Data Handler
    Stream #0:2(eng): Audio: pcm_s16le (sowt / 0x74776F73), 48000 Hz, mono, s16, 768 kb/s (default)
    Metadata:
      creation_time   : 2014-09-04T18:54:07.000000Z
      handler_name    : Apple Alias Data Handler
    Stream #0:3(eng): Audio: pcm_s16le (sowt / 0x74776F73), 48000 Hz, mono, s16, 768 kb/s (default)
    Metadata:
      creation_time   : 2014-09-04T18:54:07.000000Z
      handler_name    : Apple Alias Data Handler
    Stream #0:4(eng): Audio: pcm_s16le (sowt / 0x74776F73), 48000 Hz, mono, s16, 768 kb/s (default)
    Metadata:
      creation_time   : 2014-09-04T18:54:07.000000Z
      handler_name    : Apple Alias Data Handler
    Stream #0:5(eng): Data: none (tmcd / 0x64636D74) (default)
    Metadata:
      creation_time   : 2014-09-04T18:54:07.000000Z
      handler_name    : Apple Handle Data Handler
      timecode        : 01:46:43:02
File 'camb_onitefire_A.mp4' already exists. Overwrite ? [y/N] y
Stream mapping:
  Stream #0:0 -> #0:0 (dvvideo (native) -> h264 (libx264))
  Stream #0:1 -> #0:1 (pcm_s16le (native) -> aac (native))
Press [q] to stop, [?] for help
Finishing stream 0:0 without any data written to it.
Finishing stream 0:1 without any data written to it.
Nothing was written into output file 0 (camb_onitefire_A.mp4), because at least one of its streams received no packets.
frame=    0 fps=0.0 q=0.0 Lsize=       0kB time=-577014:32:22.77 bitrate=  -0.0kbits/s speed=N/A    
video:0kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown
[aac @ 0x7fe1fd010e00] Qavg: nan

这里有一个新颖的mxd文件结构的例子:

Heres an example of the file structure of this novel mxd:

推荐答案

这里提供的是MOV,它只是一个shell,实际的流在其他位置.

What you have here is a MOV which is only a shell and the actual streams are elsewhere.

运行

ffmpeg -enable_drefs 1 -use_absolute_path 1 -i camb_onitefire_050914.mov camb_onitefire_A.mp4

运行,以传输所有曲目

ffmpeg -enable_drefs 1 -use_absolute_path 1 -i camb_onitefire_050914.mov -map 0:v -map 0:a camb_onitefire_A.mp4

上面的内容,带有时间码

The above, with timecode

ffmpeg -enable_drefs 1 -use_absolute_path 1 -i camb_onitefire_050914.mov -map 0:v -map 0:a -write_tmcd 1 camb_onitefire_A.mp4

这篇关于ffmpeg可以识别MXF dv,但不会编码为h264的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆