[FFmpeg-user] convert YV12 stream to ProRes
Roee Kashi
galacap at gmail.com
Mon Jun 16 21:21:58 CEST 2014
Hi,
I'm decoding an IP camera stream which outputs YV12 frames.
using named pipes, I pass this stream to ffmpeg (Zeranoe build version
2014-06-15) and wish to convert it to ProRes format.
I tried the following command:
>ffmpeg.exe -y -f rawvideo -vcodec rawvideo -s 352x288 -r 25 -pix_fmt
yuv420p -i \\.\pipe\yv12Pipe -vcodec prores -qp 0 -vtag YV12 d:\\out123.mov
when i convert it to AVI it works ok, but for ProRes it doesn't and it's
probably because the vtag YV12 cannot be applied on ProRes which defines
its pixel format.
what i'm seeking is an additional input pix_fmt for YV12 (or perhaps
yvu420p?).
When I tried to do that in 2 steps (convert it to AVI then to ProRes) it
works, terribly slow - but works.
here is the output of this process:
>ffmpeg -i "d:\out123.avi" -vcodec prores d:\out.mov
ffmpeg version N-63968-g73d820e Copyright (c) 2000-2014 the FFmpeg
developers
built on Jun 15 2014 00:52:21 with gcc 4.8.3 (GCC)
configuration: --enable-gpl --enable-version3 --disable-w32threads
--enable-avisynth --enable-bzlib --enable-fontconfig --e
tls --enable-iconv --enable-libass --enable-libbluray --enable-libcaca
--enable-libfreetype --enable-libgme --enable-libgsm -
libmodplug --enable-libmp3lame --enable-libopencore-amrnb
--enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --
ibschroedinger --enable-libsoxr --enable-libspeex --enable-libtheora
--enable-libtwolame --enable-libvidstab --enable-libvo-a
benc --enable-libvorbis --enable-libvpx --enable-libwavpack
--enable-libwebp --enable-libx264 --enable-libx265 --enable-libxa
ble-decklink --enable-zlib
libavutil 52. 89.100 / 52. 89.100
libavcodec 55. 66.101 / 55. 66.101
libavformat 55. 43.100 / 55. 43.100
libavdevice 55. 13.101 / 55. 13.101
libavfilter 4. 8.100 / 4. 8.100
libswscale 2. 6.100 / 2. 6.100
libswresample 0. 19.100 / 0. 19.100
libpostproc 52. 3.100 / 52. 3.100
Input #0, avi, from 'd:\out123.avi':
Metadata:
encoder : Lavf55.21.102
Duration: 00:11:18.36, start: 0.000000, bitrate: 30417 kb/s
Stream #0:0: Video: rawvideo (YV12 / 0x32315659), yuv420p, 352x288,
30414 kb/s, 25 fps, 25 tbr, 25 tbn, 25 tbc
[prores @ 0000000000315d40] encoding with ProRes standard (apcn) profile
[prores @ 000000000034f680] encoding with ProRes standard (apcn) profile
[prores @ 0000000000354ce0] encoding with ProRes standard (apcn) profile
[prores @ 0000000000357f60] encoding with ProRes standard (apcn) profile
[prores @ 00000000003001a0] encoding with ProRes standard (apcn) profile
Output #0, mov, to 'd:\out.mov':
Metadata:
encoder : Lavf55.43.100
Stream #0:0: Video: prores (apcn) (apcn / 0x6E637061), yuv422p10le,
352x288, q=2-31, 200 kb/s, 25 fps, 12800 tbn, 25 tbc
Metadata:
encoder : Lavc55.66.101 prores
Stream mapping:
Stream #0:0 -> #0:0 (rawvideo (native) -> prores (prores))
Press [q] to stop, [?] for help
frame=16959 fps=220 q=0.0 Lsize= 606784kB time=00:11:18.36
bitrate=7327.6kbits/s
video:606713kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB
muxing overhead: 0.011810%
So I believe there should be a way to do improve it with a single operation.
Regards,
Roee.
More information about the ffmpeg-user
mailing list