[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 lookup69 at gmail.com
Mon Dec 5 14:51:23 EET 2016


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 it a bug of the ffmpeg?

Regards,
Archer Chang


More information about the ffmpeg-user mailing list