<div dir="auto"><div><br><br><div class="gmail_quote"><div dir="ltr">Le mer. 5 sept. 2018 13:27, Amit Pandya <<a href="mailto:amit4gst@gmail.com">amit4gst@gmail.com</a>> a écrit :<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi all,<br>
<br>
Trying to decode H264 encoded file (mp4 container test_1280x720.mp4<br>
<<a href="http://gstreamer-devel.966125.n4.nabble.com/file/t376003/test_1280x720.mp4" rel="noreferrer noreferrer" target="_blank">http://gstreamer-devel.966125.n4.nabble.com/file/t376003/test_1280x720.mp4</a>> <br>
) using following pipeline.<br>
<br>
gst-launch-1.0 filesrc location=test_1280x720.mp4 ! qtdemux ! h264parse !<br>
'video/x-h264, stream-format=(string)byte-stream' ! H264 decoder element<br>
<br>
For above pipeline first input buffer received by H264 deoder from h264parse<br>
seems not a complete frame (Refer first_buffer.264 first_buffer.264<br>
<<a href="http://gstreamer-devel.966125.n4.nabble.com/file/t376003/first_buffer.264" rel="noreferrer noreferrer" target="_blank">http://gstreamer-devel.966125.n4.nabble.com/file/t376003/first_buffer.264</a>> <br>
) - size of only few (~28)bytes only<br>
Followed with rest of the first frame with second input buffer (Refer<br>
second_buffer.264 second_buffer.264<br>
<<a href="http://gstreamer-devel.966125.n4.nabble.com/file/t376003/second_buffer.264" rel="noreferrer noreferrer" target="_blank">http://gstreamer-devel.966125.n4.nabble.com/file/t376003/second_buffer.264</a>> <br>
).<br>
This is creating issues with H264 decode element as it expects complete<br>
frame with first input buffer.<br>
<br>
Here, "stream-format=(string)byte-stream" is forced using caps on output of<br>
h264parse.<br>
<br>
Shouldn't this force h264parse to send complete frame as first input buffer<br>
for decoder ?<br></blockquote></div></div><div dir="auto"><br></div><div dir="auto">No, you also need to specify alignment=au for complete frames. Hopefully this is all.</div><div dir="auto"><br></div><div dir="auto"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
For further tryouts dumped the byte-stream output of h264parse for the same<br>
mp4 file using below pipeline.<br>
<br>
gst-launch-1.0 filesrc location=test_1280x720.mp4 ! qtdemux ! h264parse !<br>
'video/x-h264, stream-format=(string)byte-stream' ! filesink<br>
location=test_1280x720.264<br>
<br>
Now, If use this dumped .264 using following pipline then first input buffer<br>
received by H264 decoder from h264parse seems a complete frame (Refer<br>
first_buffer_elemenary_input.264 first_buffer_elemenary_input.264<br>
<<a href="http://gstreamer-devel.966125.n4.nabble.com/file/t376003/first_buffer_elemenary_input.264" rel="noreferrer noreferrer" target="_blank">http://gstreamer-devel.966125.n4.nabble.com/file/t376003/first_buffer_elemenary_input.264</a>> <br>
)<br>
<br>
gst-launch-1.0 filesrc location=test_1280x720.264 ! h264parse !<br>
'video/x-h264, stream-format=(string)byte-stream' ! H264 decoder element<br>
<br>
Need help to understand why h264parse element is behaving differently in<br>
above two cases of .mp4 container vs .264 elementary as input file. <br>
<br>
-Thanks<br>
<br>
<br>
<br>
<br>
--<br>
Sent from: <a href="http://gstreamer-devel.966125.n4.nabble.com/" rel="noreferrer noreferrer" target="_blank">http://gstreamer-devel.966125.n4.nabble.com/</a><br>
_______________________________________________<br>
gstreamer-devel mailing list<br>
<a href="mailto:gstreamer-devel@lists.freedesktop.org" target="_blank" rel="noreferrer">gstreamer-devel@lists.freedesktop.org</a><br>
<a href="https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel" rel="noreferrer noreferrer" target="_blank">https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel</a><br>
</blockquote></div></div></div>