This question is also asked on Audio-Video Production
I have some files that when played in jwplayer the playback is corrupt. The files are encoded to h.264 using FFMpeg and there is other files encoded in the same way that works.
At the moment we only use the flash version of the player.
This problem started showing up after we did an upgrade to FFMpeg, so I haven't ruled out that it could be an encoding error.
the command used to run FFMpeg is:
ffmpeg
-i /home/ftp/1c8f08b7d0d9e7fa4b24066156ad50bc981497a0.mov
-vcodec libx264
-preset ultrafast
-profile baseline
-acodec libfaac
-ab 96k
-crf 19
-vf movie="/home/adam/logo.png [watermark]; [in][watermark] overlay=main_w-overlay_w-10:main_h-overlay_h-10 [out]"
-y /home/ftp/1c8f08b7d0d9e7fa4b24066156ad50bc981497a0.flv
I am in no way an expert in FFMpeg commandline, so feel free to point out any mistakes made.
FFMpeg info:
ffmpeg version git-2012-05-02-2330eb1 Copyright (c) 2000-2012 the FFmpeg developers
built on May 3 2012 08:51:25 with gcc 4.4.3
configuration: --enable-gpl --enable-libfaac --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-nonfree --enable-version3 --enable-x11grab
libavutil 51. 49.100 / 51. 49.100
libavcodec 54. 17.101 / 54. 17.101
libavformat 54. 3.100 / 54. 3.100
libavdevice 53. 4.100 / 53. 4.100
libavfilter 2. 72.103 / 2. 72.103
libswscale 2. 1.100 / 2. 1.100
libswresample 0. 11.100 / 0. 11.100
libpostproc 52. 0.100 / 52. 0.100
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x24300e0] max_analyze_duration 5000000 reached at 5187000
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/home/ftp/javarecorder/1c8f08b7d0d9e7fa4b24066156ad50bc981497a0.mov':
Metadata:
major_brand : qt
minor_version : 537199360
compatible_brands: qt
creation_time : 2012-05-16 08:19:41
Duration: 00:13:33.00, start: 0.000000, bitrate: 2164 kb/s
Stream #0:0(eng): Video: qtrle (rle / 0x20656C72), rgb24, 1366x768, 1457 kb/s, 8.43 fps, 1k tbr, 1k tbn, 1k tbc
Metadata:
creation_time : 2012-05-16 08:19:41
handler_name : Apple Alias Data Handler
Stream #0:1(eng): Audio: pcm_s16be (twos / 0x736F7774), 44100 Hz, 1 channels, s16, 705 kb/s
Metadata:
creation_time : 2012-05-16 08:19:41
handler_name : Apple Alias Data Handler
Please use -profile:a or -profile:v, -profile is ambiguous
[buffer @ 0x2446ac0] w:1366 h:768 pixfmt:rgb24 tb:1/1000000 sar:0/1 sws_param:flags=2
[movie @ 0x242f840] seek_point:0 format_name:(null) file_name:/home/adam/logo.png stream_index:0
[overlay @ 0x2442840] auto-inserting filter 'auto-inserted scale 0' between the filter 'src' and the filter 'Parsed_overlay_1'
[overlay @ 0x2442840] auto-inserting filter 'auto-inserted scale 1' between the filter 'Parsed_movie_0' and the filter 'Parsed_overlay_1'
[scale @ 0x24444a0] w:1366 h:768 fmt:rgb24 sar:0/1 -> w:1366 h:768 fmt:yuv420p sar:0/1 flags:0x4
[scale @ 0x2445100] w:80 h:80 fmt:rgba sar:1/1 -> w:80 h:80 fmt:yuva420p sar:1/1 flags:0x4
[overlay @ 0x2442840] main w:1366 h:768 fmt:yuv420p overlay x:1276 y:678 w:80 h:80 fmt:yuva420p
[overlay @ 0x2442840] main_tb:1/1000000 overlay_tb:1/25 -> tb:1/1000000 exact:1
[libx264 @ 0x242d8c0] MB rate (4128000) > level limit (2073600)
[libx264 @ 0x242d8c0] using cpu capabilities: MMX2 SSE2Fast SSSE3 FastShuffle SSE4.2
[libx264 @ 0x242d8c0] profile Constrained Baseline, level 5.2
[libx264 @ 0x242d8c0] 264 - core 124 r2197 69a0443 - H.264/MPEG-4 AVC codec - Copyleft 2003-2012 - http://www.videolan.org/x264.html - options: cabac=0 ref=1 deblock=0:0:0 analyse=0:0 me=dia subme=0 psy=1 psy_rd=1.00:0.00 mixed_ref=0 me_range=16 chroma_me=1 trellis=0 8x8dct=0 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=0 threads=36 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=0 weightp=0 keyint=250 keyint_min=25 scenecut=0 intra_refresh=0 rc=crf mbtree=0 crf=19.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=0
[libfaac @ 0x2443540] channel_layout not specified
Guessed Channel Layout for Input Stream #0.1 : mono
Output #0, flv, to '/home/ftp/javarecorder/1c8f08b7d0d9e7fa4b24066156ad50bc981497a0.flv':
Metadata:
major_brand : qt
minor_version : 537199360
compatible_brands: qt
creation_time : 2012-05-16 08:19:41
encoder : Lavf54.3.100
Stream #0:0(eng): Video: h264 ([7][0][0][0] / 0x0007), yuv420p, 1366x768, q=-1--1, 1k tbn, 1k tbc
Metadata:
creation_time : 2012-05-16 08:19:41
handler_name : Apple Alias Data Handler
Stream #0:1(eng): Audio: aac ([10][0][0][0] / 0x000A), 44100 Hz, mono, s16, 96 kb/s
Metadata:
creation_time : 2012-05-16 08:19:41
handler_name : Apple Alias Data Handler
Stream mapping:
Stream #0:0 -> #0:0 (qtrle -> libx264)
Stream #0:1 -> #0:1 (pcm_s16be -> libfaac)
Press [q] to stop, [?] for help
Input stream #0:1 frame changed from rate:44100 fmt:s16 ch:1 chl:0x0 to rate:44100 fmt:s16 ch:1 chl:0x4
frame= 6856 fps=105 q=-1.0 Lsize= 36030kB time=00:13:32.83 bitrate= 363.1kbits/s
video:27775kB audio:7540kB global headers:0kB muxing overhead 2.026555%
[libx264 @ 0x242d8c0] frame I:28 Avg QP: 4.61 size:238170
[libx264 @ 0x242d8c0] frame P:6828 Avg QP: 7.31 size: 3189
[libx264 @ 0x242d8c0] mb I I16..4: 100.0% 0.0% 0.0%
[libx264 @ 0x242d8c0] mb P I16..4: 0.9% 0.0% 0.0% P16..4: 2.2% 0.0% 0.0% 0.0% 0.0% skip:96.9%
[libx264 @ 0x242d8c0] coded y,uvDC,uvAC intra: 32.3% 30.0% 29.0% inter: 1.0% 1.1% 1.0%
[libx264 @ 0x242d8c0] i16 v,h,dc,p: 66% 32% 1% 1%
[libx264 @ 0x242d8c0] i8c dc,h,v,p: 62% 23% 14% 1%
[libx264 @ 0x242d8c0] kb/s:279.82
A coworker was able to view a "corrupted" file. The only difference between my computer and his is that he have a Mac. Same flash version, same JW Player version. Something is not right here.
Seems like the culprit was the framerate. Through some magic thing the framerate of the resulting video was around 1000. Using -r 30
seems to have solved the issue.