[FFmpeg-user] MPEG-2 to H264 jerky output - soccer match
José María Infanzón
jocheinfa at gmail.com
Mon Jan 8 19:54:21 EET 2018
Hi Carl - Thanks for your quick reply. This is my first time writing
through the user list, so my apologies if I miss something. Let me add all
the outputs with FFPROBE and FFMPEG:
The input is interlaced.
*####################### FFPROBE ON INPUT STREAM (MPEG-2)
#######################*
ffprobe version N-89707-g89b84cb Copyright (c) 2007-2018 the FFmpeg
developers
built with gcc 5.4.0 (Ubuntu 5.4.0-6ubuntu1~16.04.5) 20160609
configuration: --prefix=/root/ffmpeg_build --pkg-config-flags=--static
--extra-cflags=-I/root/ffmpeg_build/include
--extra-ldflags=-L/root/ffmpeg_build/lib --extra-libs='-lpthread -lm'
--bindir=/root/bin --enable-gpl --enable-libass --enable-libfdk-aac
--enable-libfreetype --enable-libmp3lame --enable-libopus
--enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264
--enable-libx265 --enable-nonfree
libavutil 56. 7.100 / 56. 7.100
libavcodec 58. 9.100 / 58. 9.100
libavformat 58. 3.100 / 58. 3.100
libavdevice 58. 0.100 / 58. 0.100
libavfilter 7. 11.100 / 7. 11.100
libswscale 5. 0.101 / 5. 0.101
libswresample 3. 0.101 / 3. 0.101
libpostproc 55. 0.100 / 55. 0.100
[mpeg2video @ 0x34dcf00] Invalid frame dimensions 0x0.
Last message repeated 6 times
Input #0, mpegts, from 'udp://@224.2.2.2:1005':
Duration: N/A, start: 768.815100, bitrate: 5256 kb/s
Program 1025
Metadata:
service_name : DTV4
service_provider:
Stream #0:0[0x401]: Video: mpeg2video (Main) ([2][0][0][0] / 0x0002),
yuv420p(tv, bottom first), 720x576 [SAR 64:45 DAR 16:9], Closed Captions,
5000 kb/s, 25 fps, 25 tbr, 90k tbn, 50 tbc
Stream #0:1[0x402]: Audio: ac3 ([129][0][0][0] / 0x0081), 48000 Hz,
stereo, fltp, 256 kb/s
*####################### FFPROBE ON OUTPUT STREAM (H264)
#######################*
ffprobe version N-89707-g89b84cb Copyright (c) 2007-2018 the FFmpeg
developers
built with gcc 5.4.0 (Ubuntu 5.4.0-6ubuntu1~16.04.5) 20160609
configuration: --prefix=/root/ffmpeg_build --pkg-config-flags=--static
--extra-cflags=-I/root/ffmpeg_build/include
--extra-ldflags=-L/root/ffmpeg_build/lib --extra-libs='-lpthread -lm'
--bindir=/root/bin --enable-gpl --enable-libass --enable-libfdk-aac
--enable-libfreetype --enable-libmp3lame --enable-libopus
--enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264
--enable-libx265 --enable-nonfree
libavutil 56. 7.100 / 56. 7.100
libavcodec 58. 9.100 / 58. 9.100
libavformat 58. 3.100 / 58. 3.100
libavdevice 58. 0.100 / 58. 0.100
libavfilter 7. 11.100 / 7. 11.100
libswscale 5. 0.101 / 5. 0.101
libswresample 3. 0.101 / 3. 0.101
libpostproc 55. 0.100 / 55. 0.100
[hls,applehttp @ 0x4bead40] Opening '
http://localhost:6081/hls/tnt_sport/2_1/index.m3u8?sessId=2541' for reading
[hls,applehttp @ 0x4bead40] Opening '
http://localhost:6081/hls/tnt_sport/2_1/9901_24381.ts?sessId=2541' for
reading
[hls,applehttp @ 0x4bead40] Opening '
http://localhost:6081/hls/tnt_sport/2_1/24381_32861.ts?sessId=2541' for
reading
Input #0, hls,applehttp, from 'http://localhost:6081/hls/tnt_sport/index.m3u
':
Duration: N/A, start: 9.920000, bitrate: N/A
Program 0
Metadata:
variant_bitrate : 2303320
Stream #0:0: Audio: aac (LC) ([15][0][0][0] / 0x000F), 48000 Hz,
stereo, fltp
Metadata:
variant_bitrate : 2303320
Stream #0:1: Video: h264 (High) ([27][0][0][0] / 0x001B), yuv420p,
720x576 [SAR 64:45 DAR 16:9], 25 fps, 25 tbr, 90k tbn, 50 tbc
Metadata:
variant_bitrate : 2303320
*####################### FFMPEG COMMANDS USED TO ENCODE MPEG2-->H264
#######################*
/root/ffmpeg_sources/ffmpeg/ffmpeg -loglevel debug -threads 0 y -i udp://@
224.2.2.2:1005 -vprofile high -acodec aac -b:a 96k -vcodec libx264 -preset
slow -filter:v "yadif=1" -tune film -b:v 2000k -maxrate 2500k -bufsize
4000k -r 25 -f flv rtmp://localhost/live/tnt_sport
*####################### FFMPEG OUTPUT #######################*
ffmpeg version N-89707-g89b84cb Copyright (c) 2000-2018 the FFmpeg
developers
built with gcc 5.4.0 (Ubuntu 5.4.0-6ubuntu1~16.04.5) 20160609
configuration: --prefix=/root/ffmpeg_build --pkg-config-flags=--static
--extra-cflags=-I/root/ffmpeg_build/include
--extra-ldflags=-L/root/ffmpeg_build/lib --extra-libs='-lpthread -lm'
--bindir=/root/bin --enable-gpl --enable-libass --enable-libfdk-aac
--enable-libfreetype --enable-libmp3lame --enable-libopus
--enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264
--enable-libx265 --enable-nonfree
libavutil 56. 7.100 / 56. 7.100
libavcodec 58. 9.100 / 58. 9.100
libavformat 58. 3.100 / 58. 3.100
libavdevice 58. 0.100 / 58. 0.100
libavfilter 7. 11.100 / 7. 11.100
libswscale 5. 0.101 / 5. 0.101
libswresample 3. 0.101 / 3. 0.101
libpostproc 55. 0.100 / 55. 0.100
Splitting the commandline.
Reading option '-loglevel' ... matched as option 'loglevel' (set logging
level) with argument 'debug'.
Reading option '-threads' ... matched as AVOption 'threads' with argument
'0'.
Reading option '-y' ... matched as option 'y' (overwrite output files) with
argument '1'.
Reading option '-i' ... matched as input url with argument 'udp://@
224.2.2.2:1005'.
Reading option '-vprofile' ... matched as AVOption 'vprofile' with argument
'high'.
Reading option '-acodec' ... matched as option 'acodec' (force audio codec
('copy' to copy stream)) with argument 'aac'.
Reading option '-b:a' ... matched as option 'b' (video bitrate (please use
-b:v)) with argument '96k'.
Reading option '-vcodec' ... matched as option 'vcodec' (force video codec
('copy' to copy stream)) with argument 'libx264'.
Reading option '-preset' ... matched as AVOption 'preset' with argument
'slow'.
Reading option '-filter:v' ... matched as option 'filter' (set stream
filtergraph) with argument 'yadif=1'.
Reading option '-tune' ... matched as AVOption 'tune' with argument 'film'.
Reading option '-b:v' ... matched as option 'b' (video bitrate (please use
-b:v)) with argument '2000k'.
Reading option '-maxrate' ... matched as AVOption 'maxrate' with argument
'2500k'.
Reading option '-bufsize' ... matched as AVOption 'bufsize' with argument
'4000k'.
Reading option '-r' ... matched as option 'r' (set frame rate (Hz value,
fraction or abbreviation)) with argument '25'.
Reading option '-f' ... matched as option 'f' (force format) with argument
'flv'.
Reading option 'rtmp://localhost/live/tnt_sport' ... matched as output url.
Finished splitting the commandline.
Parsing a group of options: global .
Applying option loglevel (set logging level) with argument debug.
Applying option y (overwrite output files) with argument 1.
Successfully parsed a group of options.
Parsing a group of options: input url udp://@224.2.2.2:1005.
Successfully parsed a group of options.
Opening an input file: udp://@224.2.2.2:1005.
[NULL @ 0x383dac0] Opening 'udp://@224.2.2.2:1005' for reading
[udp @ 0x383e3c0] No default whitelist set
[udp @ 0x383e3c0] end receive buffer size reported is 131072
[mpegts @ 0x383dac0] Format mpegts probed with size=2048 and score=50
[mpegts @ 0x383dac0] stream=0 stream_type=2 pid=401 prog_reg_desc=
[mpegts @ 0x383dac0] stream=1 stream_type=81 pid=402 prog_reg_desc=
[mpegts @ 0x383dac0] Before avformat_find_stream_info() pos: 0 bytes
read:347424 seeks:0 nb_streams:2
[mpeg2video @ 0x3862bc0] Invalid frame dimensions 0x0.
Last message repeated 2 times
[mpeg2video @ 0x3862bc0] Format yuv420p chosen by get_format().
[mpegts @ 0x383dac0] max_analyze_duration 5000000 reached at 5024000
microseconds st:1
[mpegts @ 0x383dac0] After avformat_find_stream_info() pos: 3569180 bytes
read:3570308 seeks:0 frames:286
Input #0, mpegts, from 'udp://@224.2.2.2:1005':
Duration: N/A, start: 1232.431100, bitrate: 5256 kb/s
Program 1025
Metadata:
service_name : DTV4
service_provider:
Stream #0:0[0x401], 127, 1/90000: Video: mpeg2video (Main), 1 reference
frame ([2][0][0][0] / 0x0002), yuv420p(tv, bottom first, left), 720x576
[SAR 64:45 DAR 16:9], 0/1, Closed Captions, 5000 kb/s, 25 fps, 25 tbr, 90k
tbn, 50 tbc
Stream #0:1[0x402], 159, 1/90000: Audio: ac3 ([129][0][0][0] / 0x0081),
48000 Hz, stereo, fltp, 256 kb/s
Successfully opened the file.
Parsing a group of options: output url rtmp://localhost/live/tnt_sport.
Applying option acodec (force audio codec ('copy' to copy stream)) with
argument aac.
Applying option b:a (video bitrate (please use -b:v)) with argument 96k.
Applying option vcodec (force video codec ('copy' to copy stream)) with
argument libx264.
Applying option filter:v (set stream filtergraph) with argument yadif=1.
Applying option b:v (video bitrate (please use -b:v)) with argument 2000k.
Applying option r (set frame rate (Hz value, fraction or abbreviation))
with argument 25.
Applying option f (force format) with argument flv.
Successfully parsed a group of options.
Opening an output file: rtmp://localhost/live/tnt_sport.
[rtmp @ 0x3868500] No default whitelist set
[tcp @ 0x38a13c0] No default whitelist set
[rtmp @ 0x3868500] Handshaking...
[rtmp @ 0x3868500] Type answer 3
[rtmp @ 0x3868500] Server version 1.2.3.4
[rtmp @ 0x3868500] Proto = rtmp, path = /live/tnt_sport, app = live, fname
= tnt_sport
[rtmp @ 0x3868500] New incoming chunk size = 10240000
[rtmp @ 0x3868500] Window acknowledgement size = 2500000
[rtmp @ 0x3868500] Max sent, unacked = 2500000
[rtmp @ 0x3868500] Releasing stream...
[rtmp @ 0x3868500] FCPublish stream...
[rtmp @ 0x3868500] Creating stream...
[rtmp @ 0x3868500] Sending publish command for 'tnt_sport'
Successfully opened the file.
detected 8 logical cores
Stream mapping:
Stream #0:0 -> #0:0 (mpeg2video (native) -> h264 (libx264))
Stream #0:1 -> #0:1 (ac3 (native) -> aac (native))
Press [q] to stop, [?] for help
cur_dts is invalid (this is harmless if it occurs once at the start per
stream)
[graph_1_in_0_1 @ 0x389f340] Setting 'time_base' to value '1/48000'
[graph_1_in_0_1 @ 0x389f340] Setting 'sample_rate' to value '48000'
[graph_1_in_0_1 @ 0x389f340] Setting 'sample_fmt' to value 'fltp'
[graph_1_in_0_1 @ 0x389f340] Setting 'channel_layout' to value '0x3'
[graph_1_in_0_1 @ 0x389f340] tb:1/48000 samplefmt:fltp samplerate:48000
chlayout:0x3
[format_out_0_1 @ 0x3867a00] Setting 'sample_fmts' to value 'fltp'
[format_out_0_1 @ 0x3867a00] Setting 'sample_rates' to value
'96000|88200|64000|48000|44100|32000|24000|22050|16000|12000|11025|8000|7350'
[AVFilterGraph @ 0x3869a40] query_formats: 4 queried, 9 merged, 0 already
done, 0 delayed
cur_dts is invalid (this is harmless if it occurs once at the start per
stream)
Last message repeated 2 times
[mpeg2video @ 0x38646c0] Format yuv420p chosen by get_format().
[mpeg2video @ 0x38646c0] Skipping P slice due to !sync
Last message repeated 35 times
cur_dts is invalid (this is harmless if it occurs once at the start per
stream)
Last message repeated 1 times
[mpeg2video @ 0x38646c0] Skipping B slice due to open GOP
Last message repeated 35 times
cur_dts is invalid (this is harmless if it occurs once at the start per
stream)
Last message repeated 2 times
[mpeg2video @ 0x38646c0] Skipping B slice due to open GOP
Last message repeated 35 times
cur_dts is invalid (this is harmless if it occurs once at the start per
stream)
Last message repeated 4 times
[mpeg2video @ 0x38646c0] Skipping B slice due to open GOP
Last message repeated 35 times
cur_dts is invalid (this is harmless if it occurs once at the start per
stream)
Last message repeated 1 times
[mpeg2video @ 0x38646c0] Skipping B slice due to open GOP
Last message repeated 35 times
cur_dts is invalid (this is harmless if it occurs once at the start per
stream)
Last message repeated 1 times
[Parsed_yadif_0 @ 0x385dc40] Setting 'mode' to value '1'
[graph 0 input from stream 0:0 @ 0x386c680] Setting 'video_size' to value
'720x576'
[graph 0 input from stream 0:0 @ 0x386c680] Setting 'pix_fmt' to value '0'
[graph 0 input from stream 0:0 @ 0x386c680] Setting 'time_base' to value
'1/90000'
[graph 0 input from stream 0:0 @ 0x386c680] Setting 'pixel_aspect' to value
'64/45'
[graph 0 input from stream 0:0 @ 0x386c680] Setting 'sws_param' to value
'flags=2'
[graph 0 input from stream 0:0 @ 0x386c680] Setting 'frame_rate' to value
'25/1'
[graph 0 input from stream 0:0 @ 0x386c680] w:720 h:576 pixfmt:yuv420p
tb:1/90000 fr:25/1 sar:64/45 sws_param:flags=2
[format @ 0x3857f40] Setting 'pix_fmts' to value
'yuv420p|yuvj420p|yuv422p|yuvj422p|yuv444p|yuvj444p|nv12|nv16|nv21|yuv420p10le|yuv422p10le|yuv444p10le|nv20le'
[AVFilterGraph @ 0x385e140] query_formats: 4 queried, 3 merged, 0 already
done, 0 delayed
[libx264 @ 0x38c4ec0] using mv_range_thread = 24
[libx264 @ 0x38c4ec0] using SAR=64/45
[libx264 @ 0x38c4ec0] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2
AVX FMA3 BMI2 AVX2
[libx264 @ 0x38c4ec0] profile High, level 3.0
[libx264 @ 0x38c4ec0] 264 - core 155 - H.264/MPEG-4 AVC codec - Copyleft
2003-2017 - http://www.videolan.org/x264.html - options: cabac=1 ref=5
deblock=1:-1:-1 analyse=0x3:0x113 me=hex subme=8 psy=1 psy_rd=1.00:0.15
mixed_ref=1 me_range=16 chroma_me=1 trellis=2 8x8dct=1 cqm=0 deadzone=21,11
fast_pskip=1 chroma_qp_offset=-3 threads=12 lookahead_threads=2
sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0
constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=3
weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=25 scenecut=40
intra_refresh=0 rc_lookahead=50 rc=abr mbtree=1 bitrate=2000 ratetol=1.0
qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 vbv_maxrate=2500 vbv_bufsize=4000
nal_hrd=none filler=0 ip_ratio=1.40 aq=1:1.00
Output #0, flv, to 'rtmp://localhost/live/tnt_sport':
Metadata:
encoder : Lavf58.3.100
Stream #0:0, 0, 1/1000: Video: h264 (libx264), 1 reference frame
([7][0][0][0] / 0x0007), yuv420p(left), 720x576 [SAR 64:45 DAR 16:9], 0/1,
q=-1--1, 2000 kb/s, 25 fps, 1k tbn, 25 tbc
Metadata:
encoder : Lavc58.9.100 libx264
Side data:
cpb: bitrate max/min/avg: 2500000/0/2000000 buffer size: 4000000
vbv_delay: -1
Stream #0:1, 0, 1/1000: Audio: aac (LC) ([10][0][0][0] / 0x000A), 48000
Hz, stereo, fltp, delay 1024, 96 kb/s
Metadata:
encoder : Lavc58.9.100 aac
cur_dts is invalid (this is harmless if it occurs once at the start per
stream)
Last message repeated 2 times
Clipping frame in rate conversion by 0.036934
cur_dts is invalid (this is harmless if it occurs once at the start per
stream)
Last message repeated 6 times
*** dropping frame 4 from stream 0 at ts 13
cur_dts is invalid (this is harmless if it occurs once at the start per
stream)
Last message repeated 2 times
*** dropping frame 5 from stream 0 at ts 14
cur_dts is invalid (this is harmless if it occurs once at the start per
stream)
Last message repeated 2 times
*** dropping frame 6 from stream 0 at ts 15
cur_dts is invalid (this is harmless if it occurs once at the start per
stream)
Last message repeated 3 times
*** dropping frame 7 from stream 0 at ts 16
Thanks Indeed!
2018-01-08 13:22 GMT-03:00 Carl Eugen Hoyos <ceffmpeg at gmail.com>:
> 2018-01-08 1:37 GMT+01:00 José María Infanzón <jocheinfa at gmail.com>:
>
> > When we encode another stream, let's say a movie from mpeg-2
> > to h264 final result is pretty good, but when we encode on a sport
> > channel the result is very jerky. For example on a soccer match,
> > *around the players* is kind of "micro" pixelated or blurred.
>
> Is the input interlaced?
>
> > The TV used to stream is a *full HD *and the output image can be
> > seen in
>
> Providing an output image is nearly always useless, an input frame
> may be helpful.
>
> Complete, uncut console output missing, Carl Eugen
> _______________________________________________
> 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".
--
José María Infanzón
More information about the ffmpeg-user
mailing list