I’m transcoding a file recorded from an OTA tuner using Plex DVR to h264 to reduce the size. Due to how Plex DVR tracks existing episodes I want to shrink the file size using h264 without changing the filename. The transcoded mpegts file plays faster than the original, appears to be about 2x faster. I can issue the same commands (except for how subtitles are handled) except using the mkv container and playback is at the expected speed. I’ve tried various combinations of the fps filter, the -r switch, thinking it’s the frame rate. I also tried values for the setpts filter and whatever I tried it made the playback faster (setpts=0.5*PTS, setpts=2.0*PTS). I have turned on Plex DVR’s support for transcoding to h264 in a mpegts container and playback is fine. I’ve based my ffmpeg arguments on that transcoding feature. (I can’t use this feature because my computer doesn’t have enough compute power.)
I’m using “MPlayer OS X Extended” to play. Here is my sample: https://www.dropbox.com/s/7s7itvj1uy2nov7/RobotMaker-short.ts?dl=0 $ ffmpeg -i .\~RobotMaker-short.ts ffmpeg version 4.3.1 Copyright (c) 2000-2020 the FFmpeg developers built with Apple clang version 11.0.3 (clang-1103.0.32.62) configuration: --prefix=/usr/local/Cellar/ffmpeg/4.3.1 --enable-shared --enable-pthreads --enable-version3 --enable-avresample --cc=clang --host-cflags= --host-ldflags= --enable-ffplay --enable-gnutls --enable-gpl --enable-libaom --enable-libbluray --enable-libdav1d --enable-libmp3lame --enable-libopus --enable-librav1e --enable-librubberband --enable-libsnappy --enable-libsrt --enable-libtesseract --enable-libtheora --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libxvid --enable-lzma --enable-libfontconfig --enable-libfreetype --enable-frei0r --enable-libass --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-librtmp --enable-libspeex --enable-libsoxr --enable-videotoolbox --disable-libjack --disable-indev=jack libavutil 56. 51.100 / 56. 51.100 libavcodec 58. 91.100 / 58. 91.100 libavformat 58. 45.100 / 58. 45.100 libavdevice 58. 10.100 / 58. 10.100 libavfilter 7. 85.100 / 7. 85.100 libavresample 4. 0. 0 / 4. 0. 0 libswscale 5. 7.100 / 5. 7.100 libswresample 3. 7.100 / 3. 7.100 libpostproc 55. 7.100 / 55. 7.100 Input #0, mpegts, from '.~RobotMaker-short.ts': Duration: 00:02:00.08, start: 1.400000, bitrate: 2343 kb/s Program 1 Metadata: service_name : Service01 service_provider: FFmpeg Stream #0:0[0x100]: Video: mpeg2video (Main) ([2][0][0][0] / 0x0002), yuv420p(tv, top first), 704x480 [SAR 40:33 DAR 16:9], Closed Captions, 29.97 fps, 29.97 tbr, 90k tbn, 59.94 tbc Side data: cpb: bitrate max/min/avg: 2917200/0/0 buffer size: 1835008 vbv_delay: N/A Stream #0:1[0x101](eng): Audio: ac3 ([129][0][0][0] / 0x0081), 48000 Hz, stereo, fltp, 192 kb/s The mpegts transcode: $ /usr/local/bin/ffmpeg -hide_banner -benchmark -f lavfi -i 'movie=/Users/double/Movies/.~tmpXXXXXXX.lnk[out+subcc]' -i /Users/double/Movies/RobotMaker-short.ts -map 1:a -map_chapters 1 -map_metadata 1 -aspect 16:9 -filter_complex '[1:v]fps=fps=29.969999999999999[0];[0]yadif[1];[1]format=pix_fmts=yuv420p|nv12[2]' -map '[2]' -crf:v 16 -c:v libx264 -c:a copy -preset fast -t 2:00 /Users/double/Movies/.~RobotMaker-short.transcoded.ts Input #0, lavfi, from 'movie=/Users/double/Movies/.~tmpXXXXXXX.lnk[out+subcc]': Duration: N/A, start: 1.558733, bitrate: N/A Stream #0:0: Video: rawvideo (I420 / 0x30323449), yuv420p, 704x480 [SAR 1:1 DAR 22:15], 29.97 fps, 29.97 tbr, 90k tbn, 90k tbc Stream #0:1: Subtitle: eia_608 Input #1, mpegts, from '/Users/double/Movies/RobotMaker-short.ts': Duration: 00:02:00.08, start: 1.400000, bitrate: 2343 kb/s Program 1 Metadata: service_name : Service01 service_provider: FFmpeg Stream #1:0[0x100]: Video: mpeg2video (Main) ([2][0][0][0] / 0x0002), yuv420p(tv, top first), 704x480 [SAR 40:33 DAR 16:9], Closed Captions, 29.97 fps, 29.97 tbr, 90k tbn, 59.94 tbc Side data: cpb: bitrate max/min/avg: 2917200/0/0 buffer size: 1835008 vbv_delay: N/A Stream #1:1[0x101](eng): Audio: ac3 ([129][0][0][0] / 0x0081), 48000 Hz, stereo, fltp, 192 kb/s Stream mapping: Stream #1:0 (mpeg2video) -> fps Stream #1:1 -> #0:0 (copy) format -> Stream #0:1 (libx264) Press [q] to stop, [?] for help [libx264 @ 0x7fa3a8095e00] using SAR=40/33 [libx264 @ 0x7fa3a8095e00] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2 [libx264 @ 0x7fa3a8095e00] profile High, level 3.0, 4:2:0, 8-bit Output #0, mpegts, to '/Users/double/Movies/.~RobotMaker-short.transcoded.ts': Metadata: encoder : Lavf58.45.100 Stream #0:0(eng): Audio: ac3 ([129][0][0][0] / 0x0081), 48000 Hz, stereo, fltp, 192 kb/s Stream #0:1: Video: h264 (libx264), yuv420p, 704x480 [SAR 40:33 DAR 16:9], q=-1--1, 29.97 fps, 90k tbn, 29.97 tbc Metadata: encoder : Lavc58.91.100 libx264 Side data: cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: N/A frame= 3592 fps=290 q=-1.0 Lsize= 30112kB time=00:01:59.96 bitrate=2056.2kbits/s speed= 9.7x video:25655kB audio:2812kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 5.777693% bench: utime=106.170s stime=3.512s rtime=12.367s bench: maxrss=159133696kB [libx264 @ 0x7fa3a8095e00] frame I:50 Avg QP:11.49 size: 30274 [libx264 @ 0x7fa3a8095e00] frame P:997 Avg QP:16.07 size: 13303 [libx264 @ 0x7fa3a8095e00] frame B:2545 Avg QP:18.89 size: 4516 [libx264 @ 0x7fa3a8095e00] consecutive B-frames: 3.2% 4.8% 6.7% 85.3% [libx264 @ 0x7fa3a8095e00] mb I I16..4: 25.0% 63.4% 11.7% [libx264 @ 0x7fa3a8095e00] mb P I16..4: 4.4% 19.8% 2.0% P16..4: 24.8% 14.8% 7.0% 0.0% 0.0% skip:27.2% [libx264 @ 0x7fa3a8095e00] mb B I16..4: 1.3% 4.8% 1.4% B16..8: 24.3% 10.0% 1.2% direct:11.5% skip:45.4% L0:43.1% L1:41.7% BI:15.2% [libx264 @ 0x7fa3a8095e00] 8x8 transform intra:70.0% inter:60.2% [libx264 @ 0x7fa3a8095e00] coded y,uvDC,uvAC intra: 67.0% 76.6% 43.3% inter: 19.6% 27.9% 3.5% [libx264 @ 0x7fa3a8095e00] i16 v,h,dc,p: 57% 18% 12% 13% [libx264 @ 0x7fa3a8095e00] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 30% 20% 28% 3% 3% 4% 3% 4% 4% [libx264 @ 0x7fa3a8095e00] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 35% 19% 11% 4% 6% 7% 6% 6% 5% [libx264 @ 0x7fa3a8095e00] i8c dc,h,v,p: 43% 21% 29% 7% [libx264 @ 0x7fa3a8095e00] Weighted P-Frames: Y:10.7% UV:6.3% [libx264 @ 0x7fa3a8095e00] ref P L0: 67.4% 32.6% [libx264 @ 0x7fa3a8095e00] ref B L0: 84.8% 15.2% [libx264 @ 0x7fa3a8095e00] ref B L1: 96.1% 3.9% [libx264 @ 0x7fa3a8095e00] kb/s:1753.49 The mkv transcode: $ /usr/local/bin/ffmpeg -hide_banner -benchmark -f lavfi -i 'movie=/Users/double/Movies/.~tmpXXXXXXX.lnk[out+subcc]' -i /Users/double/Movies/RobotMaker-short.ts -map 0:s -map 1:a -map_chapters 1 -map_metadata 1 -aspect 16:9 -filter_complex '[1:v]fps=fps=29.969999999999999[0];[0]yadif[1];[1]format=pix_fmts=yuv420p|nv12[2]' -map '[2]' -crf:v 16 -c:v libx264 -c:a copy -c:s ass -metadata:s:s:0 language=eng -preset fast -t 2:00 /Users/double/Movies/.~RobotMaker-short.transcoded.mkv Input #0, lavfi, from 'movie=/Users/double/Movies/.~tmpXXXXXXX.lnk[out+subcc]': Duration: N/A, start: 1.558733, bitrate: N/A Stream #0:0: Video: rawvideo (I420 / 0x30323449), yuv420p, 704x480 [SAR 1:1 DAR 22:15], 29.97 fps, 29.97 tbr, 90k tbn, 90k tbc Stream #0:1: Subtitle: eia_608 Input #1, mpegts, from '/Users/double/Movies/RobotMaker-short.ts': Duration: 00:02:00.08, start: 1.400000, bitrate: 2343 kb/s Program 1 Metadata: service_name : Service01 service_provider: FFmpeg Stream #1:0[0x100]: Video: mpeg2video (Main) ([2][0][0][0] / 0x0002), yuv420p(tv, top first), 704x480 [SAR 40:33 DAR 16:9], Closed Captions, 29.97 fps, 29.97 tbr, 90k tbn, 59.94 tbc Side data: cpb: bitrate max/min/avg: 2917200/0/0 buffer size: 1835008 vbv_delay: N/A Stream #1:1[0x101](eng): Audio: ac3 ([129][0][0][0] / 0x0081), 48000 Hz, stereo, fltp, 192 kb/s Stream mapping: Stream #1:0 (mpeg2video) -> fps Stream #0:1 -> #0:0 (eia_608 (cc_dec) -> ass (native)) Stream #1:1 -> #0:1 (copy) format -> Stream #0:2 (libx264) Press [q] to stop, [?] for help [libx264 @ 0x7fc76b81f600] using SAR=40/33 [libx264 @ 0x7fc76b81f600] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2 [libx264 @ 0x7fc76b81f600] profile High, level 3.0, 4:2:0, 8-bit [libx264 @ 0x7fc76b81f600] 264 - core 160 r3011 cde9a93 - H.264/MPEG-4 AVC codec - Copyleft 2003-2020 - http://www.videolan.org/x264.html - options: cabac=1 ref=2 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=6 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=15 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=1 weightb=1 open_gop=0 weightp=1 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=30 rc=crf mbtree=1 crf=16.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00 Output #0, matroska, to '/Users/double/Movies/.~RobotMaker-short.transcoded.mkv': Metadata: encoder : Lavf58.45.100 Stream #0:0(eng): Subtitle: ass Metadata: encoder : Lavc58.91.100 ass Stream #0:1(eng): Audio: ac3 ([0] [0][0] / 0x2000), 48000 Hz, stereo, fltp, 192 kb/s Stream #0:2: Video: h264 (libx264) (H264 / 0x34363248), yuv420p, 704x480 [SAR 40:33 DAR 16:9], q=-1--1, 29.97 fps, 1k tbn, 29.97 tbc Metadata: encoder : Lavc58.91.100 libx264 Side data: cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: N/A [Parsed_movie_0 @ 0x7fc76ae04800] EOF timestamp not reliablebitrate=1897.7kbits/s speed=9.83x frame= 3592 fps=292 q=-1.0 Lsize= 28526kB time=00:01:59.96 bitrate=1947.9kbits/s speed=9.76x video:25653kB audio:2812kB subtitle:3kB other streams:0kB global headers:1kB muxing overhead: 0.204090% bench: utime=103.705s stime=3.778s rtime=12.288s bench: maxrss=167841792kB [libx264 @ 0x7fc76b81f600] frame I:50 Avg QP:11.49 size: 30230 [libx264 @ 0x7fc76b81f600] frame P:997 Avg QP:16.07 size: 13303 [libx264 @ 0x7fc76b81f600] frame B:2545 Avg QP:18.89 size: 4516 [libx264 @ 0x7fc76b81f600] consecutive B-frames: 3.2% 4.8% 6.7% 85.3% [libx264 @ 0x7fc76b81f600] mb I I16..4: 25.0% 63.4% 11.7% [libx264 @ 0x7fc76b81f600] mb P I16..4: 4.4% 19.8% 2.0% P16..4: 24.8% 14.8% 7.0% 0.0% 0.0% skip:27.2% [libx264 @ 0x7fc76b81f600] mb B I16..4: 1.3% 4.8% 1.4% B16..8: 24.3% 10.0% 1.2% direct:11.5% skip:45.4% L0:43.1% L1:41.7% BI:15.2% [libx264 @ 0x7fc76b81f600] 8x8 transform intra:70.0% inter:60.2% [libx264 @ 0x7fc76b81f600] coded y,uvDC,uvAC intra: 67.0% 76.6% 43.3% inter: 19.6% 27.9% 3.5% [libx264 @ 0x7fc76b81f600] i16 v,h,dc,p: 57% 18% 12% 13% [libx264 @ 0x7fc76b81f600] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 30% 20% 28% 3% 3% 4% 3% 4% 4% [libx264 @ 0x7fc76b81f600] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 35% 19% 11% 4% 6% 7% 6% 6% 5% [libx264 @ 0x7fc76b81f600] i8c dc,h,v,p: 43% 21% 29% 7% [libx264 @ 0x7fc76b81f600] Weighted P-Frames: Y:10.7% UV:6.3% [libx264 @ 0x7fc76b81f600] ref P L0: 67.4% 32.6% [libx264 @ 0x7fc76b81f600] ref B L0: 84.8% 15.2% [libx264 @ 0x7fc76b81f600] ref B L1: 96.1% 3.9% [libx264 @ 0x7fc76b81f600] kb/s:1753.35 -- Patrick Double "Ye must be born again." - John 3:7 _______________________________________________ ffmpeg-user mailing list ffmpeg-user@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-user To unsubscribe, visit link above, or email ffmpeg-user-requ...@ffmpeg.org with subject "unsubscribe".