[FFmpeg-user] The transcoded file can't see the video played by the JW player which used the VAAPI to transcode file to the FLV format.

Archer Chang archerchang at qnap.com
Mon Dec 5 19:37:48 EET 2016


Hi Mark,

It works with the applying <https://git.libav.org/?p=libav.git;a=commit;h=
0cf86fabfa5820596cca2cfead63c6f8df76c3f2>
The JW player seem can only play streams with global headers.

Thank you very much.

Thanks again
Archer Chang


2016-12-05 23:52 GMT+08:00 Mark Thompson <sw at jkqxz.net>:

> On 05/12/16 12:51, Archer Chang wrote:
> > I use the VAAPI HW ACCEL to transcode file to the FLV format that the
> > command as follows.
> >
> > ffmpeg -vaapi_device /dev/dri/renderD128 -hwaccel vaapi
> > -hwaccel_output_format vaapi -hwaccel_lax_profile_check -i infile.mkv
> -vf
> > "format=nv12|vaapi,hwupload" -c:v h264_vaapi -c:a aac -ac 2 -ar 44100
> > *outfile1.flv*
> >
> > The transcoded file(outfile.flv) only can hear the audio but no video
> that
> > played by the JW player.  But when I transcode the file to the MKV and
> make
> > the stream copy to the FLV format and
> > this file can be played normally by the JW player. The command as
> follows.
> >
> > ffmpeg -vaapi_device /dev/dri/renderD128 -hwaccel vaapi
> > -hwaccel_output_format vaapi -hwaccel_lax_profile_check -i infile.mkv
> -vf
> > "format=nv12|vaapi,hwupload" -c:v h264_vaapi -c:a aac -ac 2 -ar 44100
> >  outfile.mkv
> > ffmpeg -i outfile.mkv  -c:v copy -c:a copy  *outfile2.flv*
> >
> > I try to use the flv parser utility to find out the difference between
> the
> > outfile1.flv and the outfile2.flv.
> > Seems the Video Tag1 were different. the content as follows.
> >
> > outfile1.flv (transcode using the ffmpeg directly with VAAPI)
> > 09 00 00 05 00 00 00 00 00 00 00 17 00 00 00 00
> >
> > outfile2.flv(mke the stream copy from transcoded file)
> > 09 00 00 30 00 00 00 00 00 00 00 17 00 00 00 00
> > 01 6E 00 28 FF E1 00 1A 67 6E 00 28 A6 CD 94 07
> > 80 22 7E 5C 04 40 00 00 FA 40 00 2E E0 03 C6 0C
> > 65 80 01 00 06 68 EB E3 CB 22 C0
> >
> > I not familiar with the video transcoding. I trace the flvenc.c seems the
> > par->extradata_size would be 0 when use the VAAPI to transcode the file
> to
> > the FLV directly,
> > And it has some value which makes stream copy or use SW transcode
> >
> > ffmpeg  -i infile.mkv   -c:v libx264 -c:a aac -ac 2 -ar 44100
> *outfile.flv
> >  (can be played  normally by JW Player)*
>
> Is this JW player something which can only play streams with global
> headers, then?
>
> If so, try applying <https://git.libav.org/?p=libav.git;a=commit;h=
> 0cf86fabfa5820596cca2cfead63c6f8df76c3f2> and see if it works.
>
> (This is on the assumption that you are using a packed-header VAAPI driver
> like i965, if you are using a whole-stream driver like mesa/gallium then it
> isn't really fixable.)
>
> - Mark
> _______________________________________________
> ffmpeg-user mailing list
> ffmpeg-user at ffmpeg.org
> http://ffmpeg.org/mailman/listinfo/ffmpeg-user
>
> To unsubscribe, visit link above, or email
> ffmpeg-user-request at ffmpeg.org with subject "unsubscribe".
>


More information about the ffmpeg-user mailing list