just with a quick glance.. -c copy means stream copy.. as in not to re-encode.. you should use -c copy OR -vcodec h264(-c:v h264), not both...i bet ffmpeg can do whatever upconvert that utility is doing without the need to go with a sequence first.
check out the ffmpeg docs for functions, filters, utilities, scalers, etc ,etc > On Jan 18, 2018, at 12:53 48PM, [email protected] wrote: > > First of all, I've exhausted all my Google-fu to no avail... so any help is > greatly appreciated! > > I found a cool utility to upconvert anime images > (if you're interested https://github.com/lltcggie/waifu2x-caffe) and so I'm > reencoding my low quality > anime using this. First I rip to an image sequence using a command like: > > .\ffmpeg.exe -i full-20s.mkv -f image2 "file\seq-%09d.png" > > I also get some metadata, such as framerate and stuff using ffprobe > Then I do the upconvert of the image sequence, and then I put it back > together > > .\ffmpeg.exe -y -i "full-20s.mkv" -framerate $framerate -f image2 -i > "file\seq-%09d.png" -map 1:v -c copy -vcodec h264 -pix_fmt yuv420p -map 0 > -map -0:v out.mkv > > This works beautifully for most files, but for some files this breaks in a > weird way. The file will encode > okay, and I can then play it, but I get no video. If I then seek to a > random place, pause the video and > then seek to near the beginning, it works perfectly. > > I've uploaded some example files here: > https://drive.google.com/open?id=1qog43RZ8hPfQIjc6PbGi1Ii_ugeFNrQO > (oddly, playing the bad "out.mkv" file from google drive works fine, but vlc > and other media > players it doesn't -_- ) > > I've already tried making a keyframe at the beginning with adding > `-force_key_frames 0.0` to my > command line, and making a video out of the image sequence (which then plays > fine!!!) and adding it to > the audio later. I've done a lot of research, and I'm at a loss. > > "full-20s.mkv" was taken using ./ffmpeg -i full-episode.mkv -t 20 -c copy > -map 0 full-20s.mkv > > I then made out.mkv using the following 2 commands: > > D:\programmin\Projects\reencode> & .\ffmpeg.exe -i full-20s.mkv -f image2 > ".\inp-full-20s.mkv\seq-%09d.png" > ffmpeg version N-79690-g78baa45 Copyright (c) 2000-2016 the FFmpeg > developers > built with gcc 5.3.0 (GCC) > configuration: --enable-gpl --enable-version3 --disable-w32threads > --enable-avisynth --enable-bzlib --enable-fontconfig --enable-frei0r > --enable-gnutls --enable-iconv --enable-libass --enable-libblu > ray --enable-libbs2b --enable-libcaca --enable-libfreetype --enable-libgme > --enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmfx > --enable-libmp3lame --enable-libopencore-amrnb --enable- > libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-librtmp > --enable-libschroedinger --enable-libsnappy --enable-libsoxr > --enable-libspeex --enable-libtheora --enable-libtwolame --enable- > libvidstab --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx > --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 > --enable-libxavs --enable-libxvid --enable-libzimg --enable > -lzma --enable-decklink --enable-zlib > libavutil 55. 23.100 / 55. 23.100 > libavcodec 57. 38.100 / 57. 38.100 > libavformat 57. 34.103 / 57. 34.103 > libavdevice 57. 0.101 / 57. 0.101 > libavfilter 6. 44.100 / 6. 44.100 > libswscale 4. 1.100 / 4. 1.100 > libswresample 2. 0.101 / 2. 0.101 > libpostproc 54. 0.100 / 54. 0.100 > The tags at index 3 refer to a non-existent track 4. > The tags at index 7 refer to a non-existent track 4. > Input #0, matroska,webm, from > 'D:\programmin\Projects\reencode\full-20s.mkv': > Metadata: > ENCODER : Lavf57.34.103 > Duration: 00:00:20.12, start: 0.000000, bitrate: 640 kb/s > Stream #0:0: Video: h264 (High), yuv420p, 848x480, SAR 1:1 DAR 53:30, > 19.18 fps, 19.18 tbr, 1k tbn (default) > Metadata: > DURATION : 00:00:20.124000000 > Stream #0:1(jpn): Audio: aac (HE-AAC), 48000 Hz, stereo, fltp (default) > Metadata: > DURATION : 00:00:20.010000000 > Stream #0:2(eng): Subtitle: ass (default) > Metadata: > DURATION : 00:00:00.000000000 > Stream #0:3: Attachment: ttf > Metadata: > filename : RotisWTF.ttf > mimetype : application/x-truetype-font > [image2 @ 00000000004ef9c0] Using AVStream.codec to pass codec parameters to > muxers is deprecated, use AVStream.codecpar instead. > Output #0, image2, to '.\inp-full-20s.mkv\seq-%09d.png': > Metadata: > encoder : Lavf57.34.103 > Stream #0:0: Video: png, rgb24, 848x480 [SAR 1:1 DAR 53:30], q=2-31, 200 > kb/s, 19.18 fps, 19.18 tbn (default) > Metadata: > DURATION : 00:00:20.124000000 > encoder : Lavc57.38.100 png > Stream mapping: > Stream #0:0 -> #0:0 (h264 (native) -> png (native)) > Press [q] to stop, [?] for help > frame= 386 fps=150 q=-0.0 Lsize=N/A time=00:00:20.12 bitrate=N/A > speed=7.83x > video:209581kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB > muxing overhead: unknown > > D:\programmin\Projects\reencode> .\ffmpeg.exe -y -framerate 28752/1499 -f > image2 -i ".\inp-full-20s.mkv\seq-%09d.png" -i "full-20s.mkv" -map 0:v -map > 1 -map -1:v -c copy -vcodec h264 -pix_fmt yuv420p out.mkv > ffmpeg version N-79690-g78baa45 Copyright (c) 2000-2016 the FFmpeg > developers > built with gcc 5.3.0 (GCC) > configuration: --enable-gpl --enable-version3 --disable-w32threads > --enable-avisynth --enable-bzlib --enable-fontconfig --enable-frei0r > --enable-gnutls --enable-iconv --enable-libass --enable-libblu > ray --enable-libbs2b --enable-libcaca --enable-libfreetype --enable-libgme > --enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmfx > --enable-libmp3lame --enable-libopencore-amrnb --enable- > libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-librtmp > --enable-libschroedinger --enable-libsnappy --enable-libsoxr > --enable-libspeex --enable-libtheora --enable-libtwolame --enable- > libvidstab --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx > --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 > --enable-libxavs --enable-libxvid --enable-libzimg --enable > -lzma --enable-decklink --enable-zlib > libavutil 55. 23.100 / 55. 23.100 > libavcodec 57. 38.100 / 57. 38.100 > libavformat 57. 34.103 / 57. 34.103 > libavdevice 57. 0.101 / 57. 0.101 > libavfilter 6. 44.100 / 6. 44.100 > libswscale 4. 1.100 / 4. 1.100 > libswresample 2. 0.101 / 2. 0.101 > libpostproc 54. 0.100 / 54. 0.100 > Input #0, image2, from '.\inp-full-20s.mkv\seq-%09d.png': > Duration: 00:00:20.12, start: 0.000000, bitrate: N/A > Stream #0:0: Video: png, rgb24(pc), 848x480 [SAR 1:1 DAR 53:30], 19.17 > fps, 19.18 tbr, 19.18 tbn > The tags at index 3 refer to a non-existent track 4. > The tags at index 7 refer to a non-existent track 4. > Input #1, matroska,webm, from 'full-20s.mkv': > Metadata: > ENCODER : Lavf57.34.103 > Duration: 00:00:20.12, start: 0.000000, bitrate: 640 kb/s > Stream #1:0: Video: h264 (High), yuv420p, 848x480, SAR 1:1 DAR 53:30, > 19.18 fps, 19.18 tbr, 1k tbn (default) > Metadata: > DURATION : 00:00:20.124000000 > Stream #1:1(jpn): Audio: aac (HE-AAC), 48000 Hz, stereo, fltp (default) > Metadata: > DURATION : 00:00:20.010000000 > Stream #1:2(eng): Subtitle: ass (default) > Metadata: > DURATION : 00:00:00.000000000 > Stream #1:3: Attachment: ttf > Metadata: > filename : RotisWTF.ttf > mimetype : application/x-truetype-font > [libx264 @ 00000000030f0480] using SAR=1/1 > [libx264 @ 00000000030f0480] using cpu capabilities: MMX2 SSE2Fast SSSE3 > SSE4.2 AVX FMA3 AVX2 LZCNT BMI2 > [libx264 @ 00000000030f0480] profile High, level 3.0 > [libx264 @ 00000000030f0480] 264 - core 148 r2694 3b70645 - H.264/MPEG-4 AVC > codec - Copyleft 2003-2016 - http://www.videolan.org/x264.html - options: > cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me= > hex subme=7 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=12 lookahead_threads=2 sliced_threads=0 nr=0 dec > imate=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=2 > keyint=250 keyint_min=19 scenecut=40 intra_refresh=0 rc_lookah > ead=40 rc=crf mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 > ip_ratio=1.40 aq=1:1.00 > [matroska @ 00000000031daa20] Using AVStream.codec to pass codec parameters > to muxers is deprecated, use AVStream.codecpar instead. > Last message repeated 3 times > Output #0, matroska, to 'out.mkv': > Metadata: > encoder : Lavf57.34.103 > Stream #0:0: Video: h264 (H264 / 0x34363248), yuv420p, 848x480 [SAR 1:1 > DAR 53:30], q=2-31, 19.18 fps, 1k tbn > Metadata: > encoder : Lavc57.38.100 libx264 > Side data: > cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: -1 > Stream #0:1(jpn): Audio: aac (HE-AAC) ([255][0][0][0] / 0x00FF), 48000 > Hz, stereo (default) > Metadata: > DURATION : 00:00:20.010000000 > Stream #0:2(eng): Subtitle: ass (default) > Metadata: > DURATION : 00:00:00.000000000 > Stream #0:3: Attachment: ttf > Metadata: > filename : RotisWTF.ttf > mimetype : application/x-truetype-font > Stream mapping: > Stream #0:0 -> #0:0 (png (native) -> h264 (libx264)) > Stream #1:1 -> #0:1 (copy) > Stream #1:2 -> #0:2 (copy) > Stream #1:3 -> #0:3 (copy) > Press [q] to stop, [?] for help > [image2 @ 00000000005b65a0] Thread message queue blocking; consider raising > the thread_queue_size option (current value: 8) > frame= 386 fps=143 q=-1.0 Lsize= 1978kB time=00:00:20.01 bitrate= > 809.6kbits/s speed= 7.4x > video:1814kB audio:99kB subtitle:0kB other streams:0kB global headers:0kB > muxing overhead: 3.401193% > [libx264 @ 00000000030f0480] frame I:10 Avg QP:17.92 size: 11772 > [libx264 @ 00000000030f0480] frame P:173 Avg QP:22.36 size: 8013 > [libx264 @ 00000000030f0480] frame B:203 Avg QP:25.76 size: 1738 > [libx264 @ 00000000030f0480] consecutive B-frames: 20.2% 25.4% 10.9% 43.5% > [libx264 @ 00000000030f0480] mb I I16..4: 21.9% 60.3% 17.8% > [libx264 @ 00000000030f0480] mb P I16..4: 3.3% 20.1% 3.5% P16..4: 27.4% > 8.8% 3.8% 0.0% 0.0% skip:33.1% > [libx264 @ 00000000030f0480] mb B I16..4: 1.2% 4.5% 0.3% B16..8: 15.3% > 1.9% 0.5% direct: 5.1% skip:71.3% L0:40.9% L1:49.6% BI: 9.5% > [libx264 @ 00000000030f0480] 8x8 transform intra:72.8% inter:68.9% > [libx264 @ 00000000030f0480] coded y,uvDC,uvAC intra: 39.3% 51.0% 21.0% > inter: 12.4% 16.4% 2.0% > [libx264 @ 00000000030f0480] i16 v,h,dc,p: 45% 23% 12% 20% > [libx264 @ 00000000030f0480] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 36% 16% 22% 4% > 5% 4% 5% 4% 5% > [libx264 @ 00000000030f0480] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 24% 16% 13% 7% > 10% 8% 8% 7% 6% > [libx264 @ 00000000030f0480] i8c dc,h,v,p: 60% 17% 16% 7% > [libx264 @ 00000000030f0480] Weighted P-Frames: Y:13.9% UV:10.4% > [libx264 @ 00000000030f0480] ref P L0: 73.0% 16.4% 8.2% 2.3% 0.1% > [libx264 @ 00000000030f0480] ref B L0: 90.9% 7.6% 1.5% > [libx264 @ 00000000030f0480] ref B L1: 97.8% 2.2% > [libx264 @ 00000000030f0480] kb/s:738.12 > > you can seek to like 4 seconds in out.mkv and then get video, but starting > from the beginning gets nothing. > > I'm not sure what's going on, this works with some mkv files, and not with > others, also I was able to > reencode and entire anime in mp4 format without problems like this. > > Any help would be appreciated! > > By the way, the entire powershell script if anyone is interested: > https://gist.github.com/serialhex/18ff67b31f05e700d5456aac0e213e7f > > Thanks for your help > > > > -- > Sent from: http://www.ffmpeg-archive.org/ > _______________________________________________ > ffmpeg-user mailing list > [email protected] > http://ffmpeg.org/mailman/listinfo/ffmpeg-user > > To unsubscribe, visit link above, or email > [email protected] with subject "unsubscribe". _______________________________________________ ffmpeg-user mailing list [email protected] http://ffmpeg.org/mailman/listinfo/ffmpeg-user To unsubscribe, visit link above, or email [email protected] with subject "unsubscribe".
