2016-07-07 13 views
2

Ich versuche, unkomprimiertes Video in H.265 zu kodieren; Wenn ich jedoch die folgende Pipeline schreibe, erhalte ich eine Fehlermeldung, die ich nicht auflösen kann. Ich befolge den Beispielcode im Tegra X1 Multimedia Benutzerhandbuch, und ich verstehe nicht, warum die folgende Pipeline nicht funktioniert. Ich bin ein Anfänger in Videokompression, so dass jede Hilfe sehr nützlich wäre. Der Code/Fehlermeldung:Fehler: Fehler beim Schreiben der Eingabe in den OpenMAX-Puffer

[email protected]:~$ 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. 

Zusatzinfo debug:

/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 ... 
[email protected]:~$ 
+0

@ chema989 es MCVE ist .. gst-Start Rohr minimal abgeschlossen ist und in der Tat nachprüfbare :) seine die Skriptsprache von gstreamer .. – nayana

Antwort

0

Sind Sie sicher, dass die MOV-Datei wirklich unkomprimierte Video ist? Die Erweiterung .mov wird normalerweise für Quicktime-Video verwendet. Sie könnten "mediainfo" in Linux verwenden, um mehr Details über das Format der Datei zu erfahren. In diesem Fall glaube ich nicht, dass Sie direkt von filesrc zum Encoder gehen können. Sie benötigen wahrscheinlich einen qtdemux und einen Decoder, vielleicht avdec_h264, je nachdem, was mediainfo anzeigt.

Sie könnten auch etwas ausführlichere Fehlersuche aktivieren möchten: Export GST_DEBUG = *: 4

+0

Vielen Dank für Ihre Antwort. Ich weiß für eine Tatsache, dass die .mov-Datei unkomprimiertes Video ist, denn wenn ich auf die Video-Eigenschaften schaue, heißt es, dass es Codec unkomprimiertes gepacktes YUV ist. Ich denke, es könnte etwas damit zu tun haben, eine .mov-Datei mit filesink zu erstellen. Was ist die am häufigsten verwendete Videoerweiterung für H.265-Video? – jack81964

+0

h.265 Video könnte in verschiedenen Mediencontainerformaten enthalten sein, .mp4 ist üblich. HEVC ist der Fourcc-Wert für h.265. Haben Sie neben h.265 andere Encoder auf Ihrer Plattform getestet? Vielleicht ist das Problem spezifisch für diesen Encoder? – helloflow

Verwandte Themen