It is currently 28 Mar 2017, 16:52



Errors using the ffmpeg/disk consumer

CasparCG Server, Client and development

Moderators: Macey, Jonas Hummelstrand, didikunz

Errors using the ffmpeg/disk consumer

Postby zbang » 03 Jan 2017, 03:28

Hello,

I've been playing around with the ffmpeg/disk consumer, and get some anomalous results...

Start playing the input device (fed an NTSC signal from another CasparCG server):
Code: Select all
play 1-1 decklink device 1


Using various examples from the wiki and forums, I've had little success with most of the codecs I've tried:

Code: Select all
add 1 file asdasd.mov
[2017-01-02 17:33:05.671] [5800] [error]   [ffmpeg] [libx264 @ 0A61B800] height not divisible by 4 (720x486)
[2017-01-02 17:33:05.671] [5800] [error]   [ffmpeg] [libx264 @ 0A61B800] height not divisible by 4 (720x486)
[2017-01-02 17:33:05.673] [5800] [error]   consumer\ffmpeg_consumer.cpp(412): Throw in function caspar::ffmpeg::`anonymous-namespace'::<lambda12>::operator ()
Dynamic exception type: class boost::exception_detail::clone_impl<struct caspar::ffmpeg::ffmpeg_error>
std::exception::what: Unknown exception
[struct boost::errinfo_api_function_ *] = avcodec_open2(c, encoder, nullptr)
1, "Operation not permitted"[struct caspar::tag_msg_info *] =
[struct caspar::tag_source_info *] = [ffmpeg_consumer]



Code: Select all
ADD 1 FILE myfile.mov -vcodec libx264
[2017-01-02 17:33:34.268] [5800] [error]   [ffmpeg] [libx264 @ 0A61B3E0] height not divisible by 4 (720x486)
[2017-01-02 17:33:34.268] [5800] [error]   [ffmpeg] [libx264 @ 0A61B3E0] height not divisible by 4 (720x486)
[2017-01-02 17:33:34.270] [5800] [error]   consumer\ffmpeg_consumer.cpp(412): Throw in function caspar::ffmpeg::`anonymous-namespace'::<lambda12>::operator ()
Dynamic exception type: class boost::exception_detail::clone_impl<struct caspar::ffmpeg::ffmpeg_error>
std::exception::what: Unknown exception
[struct boost::errinfo_api_function_ *] = avcodec_open2(c, encoder, nullptr)
1, "Operation not permitted"[struct caspar::tag_msg_info *] =
[struct caspar::tag_source_info *] = [ffmpeg_consumer]



Code: Select all
ADD 1 FILE myfile.mov -vcodec dnxhd
[2017-01-02 17:34:00.829] [5800] [error]   consumer\ffmpeg_consumer.cpp(361): Throw in function class std::tr1::shared_ptr<struct AVStream> __thiscall caspar::ffmpeg::ffmpeg_consumer::add_video_stream(class std::vector<struct caspar::ffmpeg::option,class std::allocator<struct caspar::ffmpeg::option> > &)
Dynamic exception type: class boost::exception_detail::clone_impl<struct caspar::caspar_exception>
std::exception::what: Unknown exception
[struct caspar::tag_msg_info *] = Unsupported video dimensions.



Code: Select all
ADD 1 FILE myfile.mov -vcodec libx264 -preset ultrafast -tune fastdecode -crf 5
[2017-01-02 17:37:28.442] [5800] [error]   [ffmpeg] [libx264 @ 0A61C000] height not divisible by 4 (720x486)
[2017-01-02 17:37:28.442] [5800] [error]   [ffmpeg] [libx264 @ 0A61C000] height not divisible by 4 (720x486)
[2017-01-02 17:37:28.444] [5800] [error]   consumer\ffmpeg_consumer.cpp(412): Throw in function caspar::ffmpeg::`anonymous-namespace'::<lambda12>::operator ()
Dynamic exception type: class boost::exception_detail::clone_impl<struct caspar::ffmpeg::ffmpeg_error>
std::exception::what: Unknown exception
[struct boost::errinfo_api_function_ *] = avcodec_open2(c, encoder, nullptr)
1, "Operation not permitted"[struct caspar::tag_msg_info *] =
[struct caspar::tag_source_info *] = [ffmpeg_consumer]



Code: Select all
ADD 1 FILE myfile.mov -vcodec dvvideo
[2017-01-02 17:38:16.359] [5800] [error]   [ffmpeg] [dvvideo @ 0A61C400] Found no DV profile for 720x486 yuv411p video. Valid DV profiles are:
[2017-01-02 17:38:16.359] [5800] [error]   [ffmpeg] [dvvideo @ 0A61C400] Frame size: 720x480; pixel format: yuv411p, framerate: 30000/1001
[2017-01-02 17:38:16.359] [5800] [error]   [ffmpeg] [dvvideo @ 0A61C400] Frame size: 720x576; pixel format: yuv420p, framerate: 25/1
[2017-01-02 17:38:16.359] [5800] [error]   [ffmpeg] [dvvideo @ 0A61C400] Frame size: 720x576; pixel format: yuv411p, framerate: 25/1
[2017-01-02 17:38:16.359] [5800] [error]   [ffmpeg] [dvvideo @ 0A61C400] Frame size: 720x480; pixel format: yuv422p, framerate: 30000/1001
[2017-01-02 17:38:16.359] [5800] [error]   [ffmpeg] [dvvideo @ 0A61C400] Frame size: 720x576; pixel format: yuv422p, framerate: 25/1
[2017-01-02 17:38:16.359] [5800] [error]   [ffmpeg] [dvvideo @ 0A61C400] Frame size: 1280x1080; pixel format: yuv422p, framerate: 30000/1001
[2017-01-02 17:38:16.359] [5800] [error]   [ffmpeg] [dvvideo @ 0A61C400] Frame size: 1440x1080; pixel format: yuv422p, framerate: 25/1
[2017-01-02 17:38:16.359] [5800] [error]   [ffmpeg] [dvvideo @ 0A61C400] Frame size: 960x720; pixel format: yuv422p, framerate: 60000/1001
[2017-01-02 17:38:16.359] [5800] [error]   [ffmpeg] [dvvideo @ 0A61C400] Frame size: 960x720; pixel format: yuv422p, framerate: 50/1
[2017-01-02 17:38:16.359] [5800] [error]   [ffmpeg] [dvvideo @ 0A61C400] Frame size: 720x576; pixel format: yuv420p, framerate: 25/1
[2017-01-02 17:38:16.359] [5800] [error]   [ffmpeg] [dvvideo @ 0A61C400] Found no DV profile for 720x486 yuv411p video. Valid DV profiles are:
[2017-01-02 17:38:16.359] [5800] [error]   [ffmpeg] [dvvideo @ 0A61C400] Frame size: 720x480; pixel format: yuv411p, framerate: 30000/1001
[2017-01-02 17:38:16.359] [5800] [error]   [ffmpeg] [dvvideo @ 0A61C400] Frame size: 720x576; pixel format: yuv420p, framerate: 25/1
[2017-01-02 17:38:16.359] [5800] [error]   [ffmpeg] [dvvideo @ 0A61C400] Frame size: 720x576; pixel format: yuv411p, framerate: 25/1
[2017-01-02 17:38:16.360] [5800] [error]   [ffmpeg] [dvvideo @ 0A61C400] Frame size: 720x480; pixel format: yuv422p, framerate: 30000/1001
[2017-01-02 17:38:16.360] [5800] [error]   [ffmpeg] [dvvideo @ 0A61C400] Frame size: 720x576; pixel format: yuv422p, framerate: 25/1
[2017-01-02 17:38:16.360] [5800] [error]   [ffmpeg] [dvvideo @ 0A61C400] Frame size: 1280x1080; pixel format: yuv422p, framerate: 30000/1001
[2017-01-02 17:38:16.360] [5800] [error]   [ffmpeg] [dvvideo @ 0A61C400] Frame size: 1440x1080; pixel format: yuv422p, framerate: 25/1
[2017-01-02 17:38:16.360] [5800] [error]   [ffmpeg] [dvvideo @ 0A61C400] Frame size: 960x720; pixel format: yuv422p, framerate: 60000/1001
[2017-01-02 17:38:16.360] [5800] [error]   [ffmpeg] [dvvideo @ 0A61C400] Frame size: 960x720; pixel format: yuv422p, framerate: 50/1
[2017-01-02 17:38:16.360] [5800] [error]   [ffmpeg] [dvvideo @ 0A61C400] Frame size: 720x576; pixel format: yuv420p, framerate: 25/1
[2017-01-02 17:38:16.361] [5800] [error]   consumer\ffmpeg_consumer.cpp(412): Throw in function caspar::ffmpeg::`anonymous-namespace'::<lambda12>::operator ()
Dynamic exception type: class boost::exception_detail::clone_impl<struct caspar::ffmpeg::ffmpeg_error>
std::exception::what: Unknown exception
[struct boost::errinfo_api_function_ *] = avcodec_open2(c, encoder, nullptr)
22, "Invalid argument"[struct caspar::tag_msg_info *] =
[struct caspar::tag_source_info *] = [ffmpeg_consumer]


Do all these have to do with the joys of NTSC and the resolution 720x486? I wouldn't think there was a problem but I'm not a guru on the formats.

Explicitly selecting the ProRes codec did not throw an exception, however the resulting files were unplayable (I tried this a few times, the come out black) ("add 1 file asdasd.mov -vcodec prores").

The only capture that was successful involved selecting mpeg4
Code: Select all
add 1 file asdasd.mov -vcodec mpeg4


Is this a case of user error, of the default parameters not matching my reality, bad documentation, or actual errors in the code? (If it's a bug, I'll file one, but won't be able to do other research for 3-4 weeks.)

I'd like to get to the bottom of this sometime... for the moment we'll capture using BMD's Media Express program; we have enough disk space for the uncompressed video. Would still like to get this into my Caspar server control system.

Thanks,

z!
zbang
 
Posts: 29
Joined: 10 Apr 2015, 02:09

Return to Tech and Development

Who is online

Users browsing this forum: Google [Bot], Google Feedfetcher and 4 guests

cron