我正在尝试在H.265中对未压缩视频进行编码;但是,当我写下面的管道时,我收到一条无法解决的错误消息。我正在遵循Tegra X1多媒体用户指南中的示例代码,我不明白为什么以下管道不起作用。我是视频压缩的初学者,所以任何帮助都会非常有用。代码/错误消息:
ubuntu@tegra-ubuntu:~$ gst-launch-1.0 filesrc location=small_mem_vid.mov ! 'video/x-raw, format=(string)I420, framerate=(fraction)30/1, width=(int)1280, height=(int)720' ! omxh265enc ! filesink location=new_encode.mov -e
Setting pipeline to PAUSED ...
Inside NvxLiteH264DecoderLowLatencyInitNvxLiteH264DecoderLowLatencyInit set DPB and MjstreamingInside NvxLiteH265DecoderLowLatencyInitNvxLiteH265DecoderLowLatencyInit set DPB and MjstreamingPipeline is PREROLLING ...
Framerate set to : 30 at NvxVideoEncoderSetParameterNvMMLiteOpen : Block : BlockType = 8
===== MSENC =====
NvMMLiteBlockCreate : Block : BlockType = 8
ERROR: from element /GstPipeline:pipeline0/GstOMXH265Enc-omxh265enc:omxh265enc-omxh265enc0: Could not write to resource.
其他调试信息:
/dvs/git/dirty/git-master_linux/external/gstreamer/gst-omx/omx/gstomxvideoenc.c(2139): gst_omx_video_enc_handle_frame (): /GstPipeline:pipeline0/GstOMXH265Enc-omxh265enc:omxh265enc-omxh265enc0:
Failed to write input into the OpenMAX buffer
ERROR: pipeline doesn't want to preroll.
Setting pipeline to NULL ...
Freeing pipeline ...
ubuntu@tegra-ubuntu:~$
答案 0 :(得分:0)
你确定.mov文件真的是未压缩的视频吗? .mov扩展名通常用于快速视频。您可以在Linux中使用“mediainfo”来发现有关文件格式的更多详细信息。在这种情况下,我认为你不能直接从filesrc到编码器。您可能需要一个qtdemux和一个解码器,可能需要avdec_h264,具体取决于mediainfo显示的内容。
您可能还想启用一些更详细的调试: export GST_DEBUG = *:4