[FFmpeg-user] convert YV12 stream to ProRes

Roee Kashi galacap at gmail.com
Mon Jun 16 21:21:58 CEST 2014


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

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
  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':
    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':
    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
      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
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.


More information about the ffmpeg-user mailing list