Issue
I'm creating a mp4 video from jpegs with ffmpeg, using the following command:
ffmpeg -y -threads 0 -f image2 -i jpegs/%05d.jpg -framerate 10 video.mp4
The resulting video will play fine with VLC, but will not play in a Jupyter notebook via:
from IPython.display import Video
Video('video.mp4')
This notebook video functionality has worked for me in the past, so I assume there's something about the codec/mime type that the Video function can't resolve?
Requested update
New command I've tried:
ffmpeg -y -framerate 10 -i jpegs/%05d.jpg -vf format=yuv420p -movflags +faststart video.mp4
Video still plays fine in VLC and still does not play in Jupyter. I've looked at the duplicates this is marked as and it does not actually seem to be the same issue..
Here's the output (I've removed the framerate and threads flags to simplify):
algo-1-poqk5_1 | 2020-11-18 21:19:36 [INFO]: ffmpeg output:
algo-1-poqk5_1 | 2020-11-18 21:19:36 [INFO]: ffmpeg version 4.0 Copyright (c) 2000-2018 the FFmpeg developers
algo-1-poqk5_1 | built with gcc 7.2.0 (crosstool-NG fa8859cb)
algo-1-poqk5_1 | configuration: --prefix=/opt/conda --cc=/opt/conda/conda-bld/ffmpeg_1531088893642/_build_env/bin/x86_64-conda_cos6-linux-gnu-cc --disable-doc --enable-shared --enable-static --enable-zlib --enable-pic --enable-gpl --enable-version3 --disable-nonfree --enable-hardcoded-tables --enable-avresample --enable-libfreetype --disable-openssl --disable-gnutls --enable-libvpx --enable-pthreads --enable-libopus --enable-postproc --disable-libx264
algo-1-poqk5_1 | libavutil 56. 14.100 / 56. 14.100
algo-1-poqk5_1 | libavcodec 58. 18.100 / 58. 18.100
algo-1-poqk5_1 | libavformat 58. 12.100 / 58. 12.100
algo-1-poqk5_1 | libavdevice 58. 3.100 / 58. 3.100
algo-1-poqk5_1 | libavfilter 7. 16.100 / 7. 16.100
algo-1-poqk5_1 | libavresample 4. 0. 0 / 4. 0. 0
algo-1-poqk5_1 | libswscale 5. 1.100 / 5. 1.100
algo-1-poqk5_1 | libswresample 3. 1.100 / 3. 1.100
algo-1-poqk5_1 | libpostproc 55. 1.100 / 55. 1.100
algo-1-poqk5_1 | Input #0, image2, from '/opt/ml/model/outputs/01-IR.mp4_1/%05d.jpg':
algo-1-poqk5_1 | Duration: 00:00:12.00, start: 0.000000, bitrate: N/A
algo-1-poqk5_1 | Stream #0:0: Video: mjpeg, yuvj420p(pc, bt470bg/unknown/unknown), 1920x1080 [SAR 1:1 DAR 16:9], 25 fps, 25 tbr, 25 tbn, 25 tbc
algo-1-poqk5_1 | Stream mapping:
algo-1-poqk5_1 | Stream #0:0 -> #0:0 (mjpeg (native) -> mpeg4 (native))
algo-1-poqk5_1 | Press [q] to stop, [?] for help
algo-1-poqk5_1 | [swscaler @ 0x55b8cc6fcc40] deprecated pixel format used, make sure you did set range correctly
algo-1-poqk5_1 | Output #0, mp4, to '/opt/ml/model/outputs/01-IR.mp4_1/video.mp4':
algo-1-poqk5_1 | Metadata:
algo-1-poqk5_1 | encoder : Lavf58.12.100
algo-1-poqk5_1 | Stream #0:0: Video: mpeg4 (mp4v / 0x7634706D), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], q=2-31, 200 kb/s, 25 fps, 12800 tbn, 25 tbc
algo-1-poqk5_1 | Metadata:
algo-1-poqk5_1 | encoder : Lavc58.18.100 mpeg4
algo-1-poqk5_1 | Side data:
algo-1-poqk5_1 | cpb: bitrate max/min/avg: 0/0/200000 buffer size: 0 vbv_delay: -1
algo-1-poqk5_1 | frame= 31 fps=0.0 q=31.0 size= 768kB time=00:00:01.20 bitrate=5242.8kbits/s speed=2.33x
algo-1-poqk5_1 | frame= 64 fps= 63 q=31.0 size= 1280kB time=00:00:02.52 bitrate=4161.0kbits/s speed=2.48x
algo-1-poqk5_1 | frame= 98 fps= 64 q=31.0 size= 1792kB time=00:00:03.88 bitrate=3783.5kbits/s speed=2.53x
algo-1-poqk5_1 | frame= 131 fps= 64 q=31.0 size= 2304kB time=00:00:05.20 bitrate=3629.7kbits/s speed=2.55x
algo-1-poqk5_1 | frame= 164 fps= 64 q=31.0 size= 2560kB time=00:00:06.52 bitrate=3216.5kbits/s speed=2.56x
algo-1-poqk5_1 | frame= 198 fps= 65 q=31.0 size= 3072kB time=00:00:07.88 bitrate=3193.6kbits/s speed=2.58x
algo-1-poqk5_1 | frame= 232 fps= 65 q=31.0 size= 3328kB time=00:00:09.24 bitrate=2950.6kbits/s speed= 2.6x
algo-1-poqk5_1 | frame= 266 fps= 66 q=31.0 size= 3840kB time=00:00:10.60 bitrate=2967.7kbits/s speed=2.62x
algo-1-poqk5_1 | frame= 299 fps= 66 q=31.0 size= 4096kB time=00:00:11.92 bitrate=2815.0kbits/s speed=2.62x
algo-1-poqk5_1 | [mp4 @ 0x55b8cc658900] Starting second pass: moving the moov atom to the beginning of the file
algo-1-poqk5_1 | frame= 300 fps= 65 q=31.0 Lsize= 4202kB time=00:00:11.96 bitrate=2877.9kbits/s speed=2.61x
algo-1-poqk5_1 | video:4199kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.052020%
Solution
algo-1-poqk5_1 | Stream mapping:
algo-1-poqk5_1 | Stream #0:0 -> #0:0 (mjpeg (native) -> mpeg4 (native))
It is encoding to mpeg4. You need a more compatible codec, like h.264
Answered By - szatmary
0 comments:
Post a Comment
Note: Only a member of this blog may post a comment.