Trying to convert a VideoCD MPEG to MP4 using ffmpeg - ffmpeg

I'm trying to convert a VideoCD MPEG to MP4 using:
FFMPEG 5.1
ffmpeg.exe -nostdin -y -loglevel info -hide_banner -i "ITEM0010.DAT" -c:v libx264 -crf 18 -qscale:v 3 -c:a aac -ar 96000 -map_metadata -1 "output.mp4"
I'm getting:
[mpeg # 0000024b81bf4480] start time for stream 1 is not set in estimate_timings_from_pts
[mpeg # 0000024b81bf4480] stream 1 : no TS found at start of file, duration not set
[mpeg # 0000024b81bf4480] Could not find codec parameters for stream 1 (Audio: mp2, 0 channels, s16p): unspecified frame size
Consider increasing the value for the 'analyzeduration' (0) and 'probesize' (5000000) options
Input #0, mpeg, from 'C:\Concierge\ITEM0010.DAT':
Stream #0:1[0x1c0]: Audio: mp2, 0 channels, s16p
Stream #0:2[0x1e2]: Video: mpeg1video, yuv420p(tv), 704x576 [SAR 178:163 DAR 1958:1467], 1100 kb/s, 25 tbr, 90k tbn
Stream mapping:
Stream #0:2 -> #0:0 (mpeg1video (native) -> h264 (libx264))
Stream #0:1 -> #0:1 (mp2 (native) -> aac (native))
[libx264 # 0000024b81c86000] -qscale is ignored, -crf is recommended.
[libx264 # 0000024b81c86000] using SAR=178/163
[libx264 # 0000024b81c86000] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2
[libx264 # 0000024b81c86000] profile High, level 3.0, 4:2:0, 8-bit
[libx264 # 0000024b81c86000] 264 - core 164 r3095 baee400 - H.264/MPEG-4 AVC codec - Copyleft 2003-2022 - 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=18 lookahead_threads=3 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=2 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=crf mbtree=1 crf=18.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
[abuffer # 0000024b84979880] Value inf for parameter 'time_base' out of range [0 - 2.14748e+09]
Last message repeated 1 times
[abuffer # 0000024b84979880] Error setting option time_base to value 1/0.
[graph_1_in_0_1 # 0000024b85187c00] Error applying options to the filter.
Error reinitializing filters!
Error while filtering: Result too large
Finishing stream 0:1 without any data written to it.
[abuffer # 0000024b84979880] Value inf for parameter 'time_base' out of range [0 - 2.14748e+09]
Last message repeated 1 times
[abuffer # 0000024b84979880] Error setting option time_base to value 1/0.
[graph_1_in_0_1 # 0000024b85186b00] Error applying options to the filter.
Error configuring filter graph
[libx264 # 0000024b81c86000] frame I:1 Avg QP:22.68 size: 40674
[libx264 # 0000024b81c86000] mb I I16..4: 3.8% 72.3% 23.9%
[libx264 # 0000024b81c86000] 8x8 transform intra:72.3%
[libx264 # 0000024b81c86000] coded y,uvDC,uvAC intra: 88.4% 81.1% 50.3%
[libx264 # 0000024b81c86000] i16 v,h,dc,p: 43% 13% 0% 43%
[libx264 # 0000024b81c86000] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 30% 16% 20% 5% 5% 6% 5% 7% 6%
[libx264 # 0000024b81c86000] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 33% 20% 8% 5% 9% 8% 8% 6% 4%
[libx264 # 0000024b81c86000] i8c dc,h,v,p: 42% 23% 28% 7%
[libx264 # 0000024b
81c86000] kb/s:8134.80
Conversion failed!
The same command using FFMPEG 4.1 works fine.

Related

ffpmeg drops last frame when compressing from MP4 to MP4 (libx264)

So, I'm using this code to compress my *mp4 file. I need to get lower quality and decrease bitrate:
ffmpeg -i input.mp4 -c:v libx264 output.mp4
The problem is: the last frame of footage is dropped after ffmpeg compression.
Screenshot is here: screenshot_ffmpeg_drop frame
I tried to use full preferences I need, but the problem is the same.
ffmpeg -i input.mp4 -c:v libx264 -vf scale=1280:720 -preset fast -crf 29 -r 25 -c:a copy output.mp4
logfile during ffmpeg encoding:
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '\input.mp4':
Metadata:
major_brand : mp42
minor_version : 0
compatible_brands: mp42mp41
creation_time : 2018-10-28T11:06:03.000000Z
Duration: 00:00:12.76, start: 0.000000, bitrate: 5374 kb/s
Stream #0:0(eng): Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, bt709), 1920x1080 [SAR 1:1 DAR 16:9], 5368 kb/s, 25 fps, 25 tbr, 50k tbn, 50 tbc (default)
Metadata:
creation_time : 2018-10-28T11:06:03.000000Z
handler_name : Alias Data Handler
encoder : AVC Coding
Stream mapping: Stream #0:0 -> #0:0 (h264 (native) -> h264
(libx264)) Press [q] to stop, [?] for help [libx264 #
000002fae8b50780] using SAR=1/1 [libx264 # 000002fae8b50780] using cpu
capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2 [libx264 #
000002fae8b50780] profile High, level 3.1 [libx264 # 000002fae8b50780]
264 - core 155 r2901 7d0ff22 - H.264/MPEG-4 AVC codec - Copyleft
2003-2018 - 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=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=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=29.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40
aq=1:1.00 Output #0, mp4, to '\output.mp4': Metadata:
major_brand : mp42
minor_version : 0
compatible_brands: mp42mp41
encoder : Lavf58.17.100
Stream #0:0(eng): Video: h264 (libx264) (avc1 / 0x31637661), yuv420p, 1280x720 [SAR 1:1 DAR 16:9], q=-1--1, 25 fps, 12800 tbn, 25
tbc (default)
Metadata:
creation_time : 2018-10-28T11:06:03.000000Z
handler_name : Alias Data Handler
encoder : Lavc58.19.104 libx264
Side data:
cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: -1
frame= 318 fps=127 q=-1.0 Lsize= 855kB time=00:00:12.60 bitrate=
556.0kbits/s speed=5.05x video:851kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.534683% [libx264 #
0000015d5cef0500] frame I:2 Avg QP:26.18 size: 67800 [libx264 #
0000015d5cef0500] frame P:80 Avg QP:27.93 size: 5439 [libx264 #
0000015d5cef0500] frame B:236 Avg QP:32.44 size: 1269 [libx264 #
0000015d5cef0500] consecutive B-frames: 0.9% 0.0% 0.9% 98.1%
[libx264 # 0000015d5cef0500] mb I I16..4: 10.6% 62.5% 26.8% [libx264
# 0000015d5cef0500] mb P I16..4: 0.5% 1.0% 0.2% P16..4: 36.1%
5.1% 3.6% 0.0% 0.0% skip:53.6% [libx264 # 0000015d5cef0500] mb B I16..4: 0.6% 0.5% 0.0% B16..8: 22.2% 0.6% 0.0% direct: 2.0%
skip:74.2% L0:44.9% L1:54.5% BI: 0.6% [libx264 # 0000015d5cef0500]
8x8 transform intra:55.0% inter:86.2% [libx264 # 0000015d5cef0500]
coded y,uvDC,uvAC intra: 48.1% 54.9% 27.0% inter: 3.2% 5.2% 0.2%
[libx264 # 0000015d5cef0500] i16 v,h,dc,p: 19% 56% 10% 15% [libx264 #
0000015d5cef0500] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 19% 25% 18% 5% 6%
5% 8% 5% 8% [libx264 # 0000015d5cef0500] i4
v,h,dc,ddl,ddr,vr,hd,vl,hu: 27% 24% 9% 5% 8% 7% 9% 5% 7%
[libx264 # 0000015d5cef0500] i8c dc,h,v,p: 60% 20% 15% 4% [libx264 #
0000015d5cef0500] Weighted P-Frames: Y:0.0% UV:0.0% [libx264 #
0000015d5cef0500] ref P L0: 67.7% 32.3% [libx264 # 0000015d5cef0500]
ref B L0: 80.4% 19.6% [libx264 # 0000015d5cef0500] ref B L1: 92.1%
7.9% [libx264 # 0000015d5cef0500] kb/s:547.35
Use
ffmpeg -ignore_editlist 1 -i input.mp4 ... output.mp4

ffmpeg concatenate image and audio to beginning of file

So I want to try and use the ffmpeg MAP command to do the following:
Merge audio and jpg
Concatenate mp4 to end
Still.jpg
audio.mp3 -> video.mp4 = output.mp4
Right now I have
/home/admin/ffmpeg/ffmpeg -i still.jpg -i audio.mp3 render1.mp4
But I want to also go ahead and add on the video.mp4 as well. I tried reading the map function but I'm so confused as to how you know how many streams a file has, etc
Heres the output of the command....note I have different file names
Input #0, image2, from 'slide_2.jpg':
Duration: 00:00:00.04, start: 0.000000, bitrate: 8276 kb/s
Stream #0:0: Video: mjpeg, yuvj420p(pc, bt470bg/unknown/unknown), 1280x720 [SAR 1:1 DAR 16:9], 25 tbr, 25 tbn, 25 tbc
Input #1, mp3, from '/home/admin/web/admin.simplewebevents.com/public_html/cron/steveng1.mp3':
Metadata:
encoder : Lavf57.56.100
Duration: 00:00:05.78, start: 0.023021, bitrate: 64 kb/s
Stream #1:0: Audio: mp3, 48000 Hz, mono, s16p, 64 kb/s
File 'introFile62.mp4' already exists. Overwrite ? [y/N] y
Stream mapping:
Stream #0:0 -> #0:0 (mjpeg (native) -> h264 (libx264))
Stream #1:0 -> #0:1 (mp3 (native) -> aac (native))
Press [q] to stop, [?] for help
No pixel format specified, yuvj420p for H.264 encoding chosen.
Use -pix_fmt yuv420p for compatibility with outdated media players.
[libx264 # 0x3589a00] using SAR=1/1
[libx264 # 0x3589a00] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX
[libx264 # 0x3589a00] profile High, level 3.1
[libx264 # 0x3589a00] 264 - core 148 - H.264/MPEG-4 AVC codec - Copyleft 2003-2017 - 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=1 lookahead_threads=1 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=2 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=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
Output #0, mp4, to 'introFile62.mp4':
Metadata:
encoder : Lavf57.72.101
Stream #0:0: Video: h264 (libx264) ([33][0][0][0] / 0x0021), yuvj420p(pc, progressive), 1280x720 [SAR 1:1 DAR 16:9], q=-1--1, 25 fps, 12800 tbn, 25 tbc
Metadata:
encoder : Lavc57.96.101 libx264
Side data:
cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: -1
Stream #0:1: Audio: aac (LC) ([64][0][0][0] / 0x0040), 48000 Hz, mono, fltp, 69 kb/s
Metadata:
encoder : Lavc57.96.101 aac
frame= 1 fps=0.2 q=28.0 Lsize= 70kB time=00:00:05.76 bitrate= 99.2kbits/s speed=1.27x
video:18kB audio:49kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 3.483214%
[libx264 # 0x3589a00] frame I:1 Avg QP:25.71 size: 18268
[libx264 # 0x3589a00] mb I I16..4: 25.6% 63.4% 10.9%
[libx264 # 0x3589a00] 8x8 transform intra:63.4%
[libx264 # 0x3589a00] coded y,uvDC,uvAC intra: 14.3% 18.5% 8.9%
[libx264 # 0x3589a00] i16 v,h,dc,p: 81% 9% 10% 1%
[libx264 # 0x3589a00] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 50% 12% 33% 1% 1% 1% 0% 1% 1%
[libx264 # 0x3589a00] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 46% 21% 13% 3% 4% 5% 2% 4% 2%
[libx264 # 0x3589a00] i8c dc,h,v,p: 76% 8% 15% 1%
[libx264 # 0x3589a00] kb/s:3653.60
[aac # 0x358aea0] Qavg: 118.057

avconv produces still image from still images

I am trying to convert a stack of 447 still images (jpg) to video using avconv on ubuntu 14.04
avconv -f image2 -i aligned_%04d.tif.jpg -r 10 movie.mkv
Output:
avconv version 9.16-6:9.16-0ubuntu0.14.04.1, Copyright (c) 2000-2014 the Libav developers
built on Aug 10 2014 18:16:02 with gcc 4.8 (Ubuntu 4.8.2-19ubuntu1)
Input #0, image2, from 'aligned_%04d.tif.jpg':
Duration: 00:00:17.84, start: 0.000000, bitrate: N/A
Stream #0.0: Video: mjpeg, yuvj420p, 792x514 [PAR 150:150 DAR 396:257], 25 fps, 25 tbr, 25 tbn
File 'movie.mkv' already exists. Overwrite ? [y/N] y
[libx264 # 0x1811dc0] using SAR=1/1
[libx264 # 0x1811dc0] using cpu capabilities: MMX2 SSE2Fast LZCNT
[libx264 # 0x1811dc0] profile High, level 3.1
[libx264 # 0x1811dc0] 264 - core 142 r2389 956c8d8 - H.264/MPEG-4 AVC codec - Copyleft 2003-2014 - 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=3 lookahead_threads=1 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=2 keyint=250 keyint_min=10 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=crf mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.25 aq=1:1.00
Output #0, matroska, to 'movie.mkv':
Metadata:
encoder : Lavf54.20.4
Stream #0.0: Video: libx264, yuvj420p, 792x514 [PAR 150:150 DAR 396:257], q=-1--1, 1k tbn, 10 tbc
Stream mapping:
Stream #0:0 -> #0:0 (mjpeg -> libx264)
Press ctrl-c to stop encoding
frame= 179 fps= 53 q=32766.0 Lsize= 158kB time=17.70 bitrate= 73.1kbits/s s
video:154kB audio:0kB global headers:0kB muxing overhead 2.300587%
[libx264 # 0x1811dc0] frame I:1 Avg QP:17.62 size: 87993
[libx264 # 0x1811dc0] frame P:46 Avg QP:16.44 size: 1477
[libx264 # 0x1811dc0] frame B:132 Avg QP:22.30 size: 26
[libx264 # 0x1811dc0] consecutive B-frames: 1.7% 0.0% 0.0% 98.3%
[libx264 # 0x1811dc0] mb I I16..4: 4.1% 88.4% 7.5%
[libx264 # 0x1811dc0] mb P I16..4: 0.1% 0.6% 0.1% P16..4: 2.8% 0.4% 0.4% 0.0% 0.0% skip:95.6%
[libx264 # 0x1811dc0] mb B I16..4: 0.0% 0.0% 0.0% B16..8: 0.2% 0.0% 0.0% direct: 0.0% skip:99.8% L0:42.2% L1:57.8% BI: 0.0%
[libx264 # 0x1811dc0] 8x8 transform intra:82.7% inter:98.4%
[libx264 # 0x1811dc0] coded y,uvDC,uvAC intra: 87.0% 81.3% 53.6% inter: 0.4% 0.8% 0.2%
[libx264 # 0x1811dc0] i16 v,h,dc,p: 7% 84% 3% 6%
[libx264 # 0x1811dc0] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 9% 29% 18% 17% 4% 3% 4% 5% 12%
[libx264 # 0x1811dc0] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 25% 19% 9% 12% 6% 5% 4% 9% 11%
[libx264 # 0x1811dc0] i8c dc,h,v,p: 36% 45% 15% 3%
[libx264 # 0x1811dc0] Weighted P-Frames: Y:0.0% UV:0.0%
[libx264 # 0x1811dc0] ref P L0: 96.3% 0.0% 1.9% 1.9%
[libx264 # 0x1811dc0] ref B L0: 78.5% 12.5% 9.0%
[libx264 # 0x1811dc0] ref B L1: 95.0% 5.0%
[libx264 # 0x1811dc0] kb/s:71.22
The resulting video runs about 18s, but seems to contain only the first frame. Changing the framerate will still end up with ~18s and only the first frame.
My expectation was: Every image would be used for one frame and the higher the framerate the shorter the video. And of course: The video should contain all images.
Is my expectation wrong? Or what could be the cause for my problem?
My command is mainly based on: https://libav.org/avconv.html#toc-image2-1
I would much rather like to delete the question.
When converting the input frames from tif (which were not accepted by avconv) to jpg, I must have hosed them up. All 447 images were actually a copy of the first one. That explains the video issues, which were no issues really.

Error using ffmpeg image2pipe with phantomjs to render video from webpage screenshots

I am trying to use phantomjs with ffmpeg to complie videos from screenshots of a webpage as described here:
https://groups.google.com/forum/#!msg/phantomjs/wluVGGjhL90/oGBXqh7QP44J
I have the following test.js file:
var page = require('webpage').create();
page.clipRect = { top: 0, left: 0, width: 900, height: 800};
page.viewportSize = { width: 900, height: 800};
var url = 'http://dl.dropbox.com/u/621993/voronoi/voronoi.html';
var frames = 100;
page.open(url, function(){
setInterval(function(){
page.render('/dev/stdout');
if( frames == 0 ){
phantom.exit();
}
frames--;
}, 100);
});
Then I run this command, taken from the link above:
$ phantomjs test.js |ffmpeg -c:v png -f image2pipe -r 10 -sameq -i - -y test.mp4
Including -sameq causes an error in ffmpeg, so I took it out and ran:
$ phantomjs test.js |ffmpeg -c:v png -f image2pipe -r 10 -i - -y test.mp4
I get the following output from ffmpeg:
ffmpeg version 2.0 Copyright (c) 2000-2013 the FFmpeg developers
built on Jul 22 2013 09:14:18 with llvm-gcc 4.2.1 (LLVM build 2336.11.00)
configuration: --prefix=/Volumes/Ramdisk/sw --enable-gpl --enable-pthreads --enable-version3 --enable-libspeex --enable-libvpx --disable-decoder=libvpx --enable-libmp3lame --enable-libtheora --enable-libvorbis --enable-libx264 --enable-avfilter --enable-libopencore_amrwb --enable-libopencore_amrnb --enable-filters --enable-libgsm --arch=x86_64 --enable-runtime-cpudetect
libavutil 52. 38.100 / 52. 38.100
libavcodec 55. 18.102 / 55. 18.102
libavformat 55. 12.100 / 55. 12.100
libavdevice 55. 3.100 / 55. 3.100
libavfilter 3. 79.101 / 3. 79.101
libswscale 2. 3.100 / 2. 3.100
libswresample 0. 17.102 / 0. 17.102
libpostproc 52. 3.100 / 52. 3.100
Input #0, image2pipe, from 'pipe:':
Duration: N/A, bitrate: N/A
Stream #0:0: Video: png, rgba, 900x800 [SAR 2835:2835 DAR 9:8], 10 fps, 10 tbr, 10 tbn, 10 tbc
No pixel format specified, yuv444p for H.264 encoding chosen.
Use -pix_fmt yuv420p for compatibility with outdated media players.
[libx264 # 0x7f8973803800] using SAR=1/1
[libx264 # 0x7f8973803800] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX
[libx264 # 0x7f8973803800] profile High 4:4:4 Predictive, level 3.1, 4:4:4 8-bit
[libx264 # 0x7f8973803800] 264 - core 133 - H.264/MPEG-4 AVC codec - Copyleft 2003-2013 - 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=4 threads=6 lookahead_threads=1 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=2 keyint=250 keyint_min=10 scenecut=40 intra_refresh=0 rc_lookahead=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
Output #0, mp4, to 'test.mp4':
Metadata:
encoder : Lavf55.12.100
Stream #0:0: Video: h264 (libx264) ([33][0][0][0] / 0x0021), yuv444p, 900x800 [SAR 1:1 DAR 9:8], q=-1--1, 10240 tbn, 10 tbc
Stream mapping:
Stream #0:0 -> #0:0 (png -> libx264)
pipe:: Input/output error0 size= 65kB time=00:00:04.10 bitrate= 130.5kbits/s
frame= 93 fps= 15 q=-1.0 Lsize= 71kB time=00:00:09.10 bitrate= 63.8kbits/s
video:69kB audio:0kB subtitle:0 global headers:0kB muxing overhead 2.696543%
[libx264 # 0x7f8973803800] frame I:1 Avg QP:15.17 size: 50212
[libx264 # 0x7f8973803800] frame P:24 Avg QP: 8.91 size: 575
[libx264 # 0x7f8973803800] frame B:68 Avg QP: 9.69 size: 87
[libx264 # 0x7f8973803800] consecutive B-frames: 2.2% 0.0% 3.2% 94.6%
[libx264 # 0x7f8973803800] mb I I16..4: 64.2% 19.6% 16.1%
[libx264 # 0x7f8973803800] mb P I16..4: 2.8% 0.2% 0.1% P16..4: 0.5% 0.0% 0.0% 0.0% 0.0% skip:96.3%
[libx264 # 0x7f8973803800] mb B I16..4: 0.0% 0.0% 0.0% B16..8: 3.1% 0.0% 0.0% direct: 0.0% skip:96.9% L0:76.4% L1:23.6% BI: 0.0%
[libx264 # 0x7f8973803800] 8x8 transform intra:13.9% inter:54.0%
[libx264 # 0x7f8973803800] coded y,u,v intra: 7.4% 4.8% 5.2% inter: 0.1% 0.1% 0.1%
[libx264 # 0x7f8973803800] i16 v,h,dc,p: 68% 31% 2% 0%
[libx264 # 0x7f8973803800] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 48% 20% 32% 0% 0% 0% 0% 0% 0%
[libx264 # 0x7f8973803800] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 30% 31% 20% 3% 3% 3% 5% 3% 4%
[libx264 # 0x7f8973803800] Weighted P-Frames: Y:0.0% UV:0.0%
[libx264 # 0x7f8973803800] ref P L0: 91.9% 0.0% 7.4% 0.7%
[libx264 # 0x7f8973803800] ref B L0: 20.5% 79.5%
[libx264 # 0x7f8973803800] ref B L1: 99.9% 0.1%
[libx264 # 0x7f8973803800] kb/s:60.16
The output test.mp4 file is a blank 10 second video - just a black screen. From what i can tell, I am getting a pipe:: Input/output error from ffmpeg.
I am pretty new to ffmpeg and I have tried changing some parameters and video codecs in the ffmpeg call, but have not found a solution yet. Can anyone advise?
I got this to work by adding -pix_fmt yuv420p to the command:
$ phantomjs test.js | ffmpeg -y -c:v png -f image2pipe -r 10 -i - -c:v libx264 -pix_fmt yuv420p -movflags +faststart test.mp4
Otherwise the output will use a chroma subsampling type (yuv444p in this case) that is not compatible with "dumb" players like QuickTime which require yuv420p – YUV color space with 4:2:0 chroma subsampling.
Adding -movflags +faststart as an input option will allow the video to begin playing by the viewer before it is completely downloaded. Useful if the video will be viewed in a browser.
Default encoding settings for libx264 will be used in this example resulting in H.264 video. See the FFmpeg and x264 Encoding Guide for more information on controlling quality and encoding speed.
I'm using user1690179's command but the mp4 is corrupted.
I'm able to fix it with
./ffmpeg -i test.mp4 -c copy repaired.mp4
Maybe that's because of the pipe:: Input/output error?
Maybe phantomjs doesn't end gracefully?
i don't know much about phantomjs but if you plan on using regular node.js with ffmpeg and request/spawn i have done something similar. It incorporates the use of request to pipe in images for the snapshot url and ffmpeg through spawn for the mjpeg
ffmpeg jpeg stream to webm only creates a file .webm with 1 frame (snapshot) or empty .webm file (mjpeg)
I was having trouble with making webm files from jpeg snapshot and mjpeg stream.. but the answer provided took care of it.
I hope someone finds it useful as this question is pretty old... and perhaps this method is better at serving the task.

ffmpeg is generating an out-of-sync audio/video file

I am trying to convert a flv video to mp4 using a264, but the result video has a out of sync audio/video. The audio seems ok but the video seems slow and therefore out of sync with the audio.
Here is the command I am running:
/opt/local/bin/ffmpeg -i complaint.flv -f mp4 -vcodec libx264 -acodec aac -copyts -strict experimental -fpre /opt/local/share/ffmpeg/libx264-lossless_slow.ffpreset -ab 44k -threads 0 -crf 23 complaint.mp4
And the output:
Desktop /opt/local/bin/ffmpeg -i complaint.flv -f mp4 -vcodec libx264 -acodec aac -copyts -strict experimental -fpre /opt/local/share/ffmpeg/libx264-lossless_slow.ffpreset -ab 44k -threads 0 -crf 23 complaint.mp4
ffmpeg version 0.7.8, Copyright (c) 2000-2011 the FFmpeg developers
built on Jan 12 2012 21:12:26 with gcc 4.2.1 (Apple Inc. build 5666) (dot 3)
configuration: --prefix=/opt/local --enable-gpl --enable-postproc --enable-swscale --enable-avfilter --enable-libmp3lame --enable-libvorbis --enable-libtheora --enable-libdirac --enable-libschroedinger --enable-libopenjpeg --enable-libxvid --enable-libx264 --enable-libvpx --enable-libspeex --mandir=/opt/local/share/man --enable-shared --enable-pthreads --cc=/usr/bin/gcc-4.2 --arch=x86_64 --enable-yasm
libavutil 50. 43. 0 / 50. 43. 0
libavcodec 52.123. 0 / 52.123. 0
libavformat 52.111. 0 / 52.111. 0
libavdevice 52. 5. 0 / 52. 5. 0
libavfilter 1. 80. 0 / 1. 80. 0
libswscale 0. 14. 1 / 0. 14. 1
libpostproc 51. 2. 0 / 51. 2. 0
[flv # 0x7fe57a04ac00] Estimating duration from bitrate, this may be inaccurate
Input #0, flv, from 'complaint.flv':
Metadata:
duration : 7
creationdate : Thu Jan 12 23:47:24
description : Recorded using VideoRecording example.
Duration: 00:00:06.61, start: 0.000000, bitrate: N/A
Stream #0.0: Video: flv, yuv420p, 288x288, 1k tbr, 1k tbn, 1k tbc
Stream #0.1: Audio: nellymoser, 11025 Hz, mono, s16
File 'complaint.mp4' already exists. Overwrite ? [y/N] y
[buffer # 0x7fe579c32cc0] w:288 h:288 pixfmt:yuv420p tb:1/1000000 sar:0/1 sws_param:
[libx264 # 0x7fe57a044600] using cpu capabilities: none!
[libx264 # 0x7fe57a044600] profile High, level 4.2
[libx264 # 0x7fe57a044600] 264 - core 118 - H.264/MPEG-4 AVC codec - Copyleft 2003-2011 - http://www.videolan.org/x264.html - options: cabac=1 ref=2 deblock=1:0:0 analyse=0x3:0x33 me=umh subme=6 psy=1 psy_rd=1.00:0.00 mixed_ref=0 me_range=16 chroma_me=1 trellis=0 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=6 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=0 weightp=2 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=crf mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.41 aq=1:1.00
Output #0, mp4, to 'complaint.mp4':
Metadata:
duration : 7
creationdate : Thu Jan 12 23:47:24
description : Recorded using VideoRecording example.
encoder : Lavf52.111.0
Stream #0.0: Video: libx264, yuv420p, 288x288, q=0-69, 200 kb/s, 1k tbn, 1k tbc
Stream #0.1: Audio: aac, 11025 Hz, mono, s16, 44 kb/s
Stream mapping:
Stream #0.0 -> #0.0
Stream #0.1 -> #0.1
Press [q] to stop, [?] for help
frame= 6557 fps=106 q=-1.0 Lsize= 685kB time=00:00:03.62 bitrate=1549.1kbits/s dup=6367 drop=0
video:615kB audio:17kB global headers:0kB muxing overhead 8.361360%
frame I:27 Avg QP:19.98 size: 8242
[libx264 # 0x7fe57a044600] frame P:6530 Avg QP:30.71 size: 62
[libx264 # 0x7fe57a044600] mb I I16..4: 11.1% 79.3% 9.6%
[libx264 # 0x7fe57a044600] mb P I16..4: 0.1% 0.2% 0.0% P16..4: 1.2% 0.2% 0.3% 0.0% 0.0% skip:98.0%
[libx264 # 0x7fe57a044600] 8x8 transform intra:77.8% inter:64.9%
[libx264 # 0x7fe57a044600] coded y,uvDC,uvAC intra: 75.3% 81.3% 33.3% inter: 0.5% 0.7% 0.1%
[libx264 # 0x7fe57a044600] i16 v,h,dc,p: 78% 9% 10% 3%
[libx264 # 0x7fe57a044600] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 35% 11% 32% 3% 4% 5% 2% 5% 4%
[libx264 # 0x7fe57a044600] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 56% 7% 9% 3% 4% 7% 3% 7% 3%
[libx264 # 0x7fe57a044600] i8c dc,h,v,p: 45% 15% 34% 6%
[libx264 # 0x7fe57a044600] Weighted P-Frames: Y:0.0% UV:0.0%
[libx264 # 0x7fe57a044600] ref P L0: 80.5% 9.5% 10.0%
[libx264 # 0x7fe57a044600] kb/s:767.20
Is there something I'm missing to make sure the video and audio line up perfectly?
For those who may be trying this, I was better of recording flash in h264 right away, instead of using yuv420p for audio codec. That worked like a charm. Adding the flag -async 1 also helped.
Update: Check out this bit from the ffmpeg documentation (http://ffmpeg.org/ffmpeg.html):
-async: Audio sync method. "Stretches/squeezes" the audio stream to match the timestamps, the parameter is the maximum samples per second by which the audio is changed. -async 1 is a special case where only the start of the audio stream is corrected without any later correction. This option has been deprecated. Use the aresample audio filter instead.
You can read about the aresample filter here: http://ffmpeg.org/trac/ffmpeg/wiki/FilteringGuide

Resources