
Recherche avancée
Autres articles (50)
-
Supporting all media types
13 avril 2011, parUnlike most software and media-sharing platforms, MediaSPIP aims to manage as many different media types as possible. The following are just a few examples from an ever-expanding list of supported formats : images : png, gif, jpg, bmp and more audio : MP3, Ogg, Wav and more video : AVI, MP4, OGV, mpg, mov, wmv and more text, code and other data : OpenOffice, Microsoft Office (Word, PowerPoint, Excel), web (html, CSS), LaTeX, Google Earth and (...)
-
List of compatible distributions
26 avril 2011, parThe table below is the list of Linux distributions compatible with the automated installation script of MediaSPIP. Distribution nameVersion nameVersion number Debian Squeeze 6.x.x Debian Weezy 7.x.x Debian Jessie 8.x.x Ubuntu The Precise Pangolin 12.04 LTS Ubuntu The Trusty Tahr 14.04
If you want to help us improve this list, you can provide us access to a machine whose distribution is not mentioned above or send the necessary fixes to add (...) -
Contribute to translation
13 avril 2011You can help us to improve the language used in the software interface to make MediaSPIP more accessible and user-friendly. You can also translate the interface into any language that allows it to spread to new linguistic communities.
To do this, we use the translation interface of SPIP where the all the language modules of MediaSPIP are available. Just subscribe to the mailing list and request further informantion on translation.
MediaSPIP is currently available in French and English (...)
Sur d’autres sites (6436)
-
How to determine the best way to split video and merge it back ?
6 novembre 2018, par Rami AlzebakLet’s say that I want to convert a Video to different resolution.
The workflow is as follows :
1- Splitting the video into n blocks
2- Convert the resolution of the block
3- Merge the blocksThe reason why I am doing is to achieve the conversion process on parallel workers (not necessarily threads )
The issue is I can’t determine what is the best number of blocks to split the video.
E.g : When splitting a large video into 10 blocks it will reduce the total time .
but when splitting a small one it may increase the total time .any hints or keys on the topic ?
-
How can I determine the resolution of incoming RTMP streams with ffmpeg ?
12 mars 2019, par toastedDeliI’m using ffmpeg to transcode RTMP from my own RTMP server into HLS ready H.264. At the moment, I’m executing a command of the following form
ffmpeg -i rtmp://<ip>:<port> <options for="for" 480p="480p"> <options for="for" 720p30="720p30"> <options for="for" 720p60="720p60"> <options for="for" 1080p="1080p">
</options></options></options></options></port></ip>This is causing me to attempt to transcode lower resolutions to higher resolutions.
The RTMP server I’m using is nginx with RTMP module
Is there a way I can determine the source resolution, so that I only transcode into resolutions smaller than the source one ?
-
ffmpeg determine correct codec to use
8 avril 2020, par nhaI am trying to use
.y4m
files that I feed into Chrome for playing.
This is the only format that I can use.


I have a set of
.y4m
files that are working for my use case, taken from here.
For example let's say that I use the file mobile_qcif_7.5fps.y4m.


I also have a
.mp4
file (specifically the samplesmall.mp4
file from techslides ). I know how to convertsmall.mp4
tosmall.y4m
with the following command :


ffmpeg -y -i small.mp4 small.y4m



I would like the resulting file to be accepted by Chrome, just like the other file.
What options should I use (and how to find them) ?



Additional information



ffprobe
gives :


$ ffprobe small.y4m 
avprobe version 0.8.13-6:0.8.13-0ubuntu0.13.10.1, Copyright (c) 2007-2014 the Libav developers
 built on Jul 15 2014 13:48:35 with gcc 4.8.1
[yuv4mpegpipe @ 0x23160c0] Estimating duration from bitrate, this may be inaccurate
Input #0, yuv4mpegpipe, from 'small.y4m':
 Duration: N/A, bitrate: N/A
 Stream #0.0: Video: rawvideo, yuv420p, 560x320, 30 fps, 30 tbr, 30 tbn, 30 tbc


$ ffprobe mobile_qcif_7.5fps.y4m
avprobe version 0.8.13-6:0.8.13-0ubuntu0.13.10.1, Copyright (c) 2007-2014 the Libav developers
 built on Jul 15 2014 13:48:35 with gcc 4.8.1
[yuv4mpegpipe @ 0x1e080c0] max_analyze_duration reached
[yuv4mpegpipe @ 0x1e080c0] Estimating duration from bitrate, this may be inaccurate
Input #0, yuv4mpegpipe, from 'mobile_qcif_7.5fps.y4m':
 Duration: N/A, bitrate: N/A
 Stream #0.0: Video: rawvideo, yuv420p, 176x144, PAR 128:117 DAR 1408:1053, 7.50 fps, 7.50 tbr, 7.50 tbn, 7.50 tbc




OS : I am using ffmpeg in Ubuntu 13.10 from the default repository : I ran
sudo apt-get install ffmpeg libavcodec-extra-53



Complete console output



$ ffmpeg -y -i small.mp4 small.y4m
ffmpeg version 0.8.13-6:0.8.13-0ubuntu0.13.10.1, Copyright (c) 2000-2014 the Libav developers
 built on Jul 15 2014 13:48:35 with gcc 4.8.1
*** THIS PROGRAM IS DEPRECATED ***
This program is only provided for compatibility and will be removed in a future release. Please use avconv instead.
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'small.mp4':
 Metadata:
 major_brand : mp42
 minor_version : 0
 compatible_brands: mp42isomavc1
 creation_time : 2010-03-20 21:29:11
 encoder : HandBrake 0.9.4 2009112300
 Duration: 00:00:05.56, start: 0.000000, bitrate: 551 kb/s
 Stream #0.0(und): Video: h264 (Constrained Baseline), yuv420p, 560x320, 465 kb/s, 30 fps, 30 tbr, 90k tbn, 60 tbc
 Metadata:
 creation_time : 2010-03-20 21:29:11
 Stream #0.1(eng): Audio: aac, 48000 Hz, mono, s16, 83 kb/s
 Metadata:
 creation_time : 2010-03-20 21:29:11
[buffer @ 0x7274e0] w:560 h:320 pixfmt:yuv420p
Output #0, yuv4mpegpipe, to 'small.y4m':
 Metadata:
 major_brand : mp42
 minor_version : 0
 compatible_brands: mp42isomavc1
 creation_time : 2010-03-20 21:29:11
 encoder : Lavf53.21.1
 Stream #0.0(und): Video: rawvideo, yuv420p, 560x320, q=2-31, 200 kb/s, 90k tbn, 30 tbc
 Metadata:
 creation_time : 2010-03-20 21:29:11
Stream mapping:
 Stream #0.0 -> #0.0
Press ctrl-c to stop encoding
frame= 166 fps= 0 q=0.0 Lsize= 43576kB time=5.53 bitrate=64513.5kbits/s 
video:0kB audio:0kB global headers:0kB muxing overhead inf%




Head of the files



Not sure if this is relevant, but the text content of both files begin like that :



mobile_qcif_7.5fps.y4m
YUV4MPEG2 W176 H144 F15:2 Ip A128:117
FRAME

small.y4m (invalid)
YUV4MPEG2 W560 H320 F15:2 Ip A0:0 C420mpeg2 XYSCSS=420MPEG2
FRAME




Additional experiment



Taking the sample
mobile_qcif_7.5fps.y4m
, turning it into a.mp4
file and then back into a.y4m
produces an invalid file (at least for Chrome).


Answer to comments in the answer of @SirDarius



Following the suggestion of @SirDarius ; I tried the following commands.
They failed to produce a valid file.



# [COMMAND] # [RESULT] [HEADER]
ffmpeg -i small.mp4 -vf fps=7.5 -an -c:v rawvideo -f yuv4mpegpipe -pix_fmt yuv444p -y small_yuv444p.y4m # KO YUV4MPEG2 W560 H320 F15:2 Ip A0:0 C444 XYSCSS=444
ffmpeg -i small.mp4 -vf fps=7.5 -an -c:v rawvideo -f yuv4mpegpipe -pix_fmt yuv422p -y small_yuv422p.y4m # KO YUV4MPEG2 W560 H320 F15:2 Ip A0:0 C422 XYSCSS=422
ffmpeg -i small.mp4 -vf fps=7.5 -an -c:v rawvideo -f yuv4mpegpipe -pix_fmt yuv420p -y small_yuv420p.y4m # KO YUV4MPEG2 W560 H320 F15:2 Ip A0:0 C420mpeg2 XYSCSS=420MPEG2
ffmpeg -i small.mp4 -vf fps=7.5 -an -c:v rawvideo -f yuv4mpegpipe -pix_fmt yuv411p -y small_yuv411p.y4m # KO YUV4MPEG2 W560 H320 F15:2 Ip A0:0 C411 XYSCSS=411

ffmpeg -i small.mp4 -vf fps=7.5 -an -c:v rawvideo -f yuv4mpegpipe -strict -1 -pix_fmt yuv420p9 -y small_yuv420p9.y4m # KO YUV4MPEG2 W560 H320 F15:2 Ip A0:0 C420p9 XYSCSS=420P9
ffmpeg -i small.mp4 -vf fps=7.5 -an -c:v rawvideo -f yuv4mpegpipe -strict -1 -pix_fmt yuv420p12 -y small_yuv420p12.y4m # KO YUV4MPEG2 W560 H320 F15:2 Ip A0:0 C420p12 XYSCSS=420P12
ffmpeg -i small.mp4 -vf fps=7.5 -an -c:v rawvideo -f yuv4mpegpipe -strict -1 -pix_fmt yuv420p14 -y small_yuv420p14.y4m # KO YUV4MPEG2 W560 H320 F15:2 Ip A0:0 C420p14 XYSCSS=420P14
ffmpeg -i small.mp4 -vf fps=7.5 -an -c:v rawvideo -f yuv4mpegpipe -strict -1 -pix_fmt yuv420p16 -y small_yuv420p16.y4m # KO YUV4MPEG2 W560 H320 F15:2 Ip A0:0 C420p16 XYSCSS=420P16




When trying other formats (like
yuv420p12be
, which was in the output of-pix_fmts
), I had the following output (hence my previous trials) :


$ ffmpeg -i small.mp4 -vf fps=7.5 -an -c:v rawvideo -f yuv4mpegpipe -pix_fmt yuv420p12be -y small_yuv420p12be.y4m 
ffmpeg version N-68884-g3ebd76a Copyright (c) 2000-2015 the FFmpeg developers
 built on Jan 6 2015 11:03:21 with gcc 4.8 (Ubuntu/Linaro 4.8.1-10ubuntu9)
 configuration: 
 libavutil 54. 16.100 / 54. 16.100
 libavcodec 56. 19.100 / 56. 19.100
 libavformat 56. 18.100 / 56. 18.100
 libavdevice 56. 3.100 / 56. 3.100
 libavfilter 5. 6.100 / 5. 6.100
 libswscale 3. 1.101 / 3. 1.101
 libswresample 1. 1.100 / 1. 1.100
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x21d0220] overread end of atom 'colr' by 1 bytes
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'small.mp4':
 Metadata:
 major_brand : mp42
 minor_version : 0
 compatible_brands: mp42isomavc1
 creation_time : 2010-03-20 21:29:11
 encoder : HandBrake 0.9.4 2009112300
 Duration: 00:00:05.57, start: 0.000000, bitrate: 551 kb/s
 Stream #0:0(und): Video: h264 (Constrained Baseline) (avc1 / 0x31637661), yuv420p(tv, bt709), 560x320, 465 kb/s, 30 fps, 30 tbr, 90k tbn, 60 tbc (default)
 Metadata:
 creation_time : 2010-03-20 21:29:11
 encoder : JVT/AVC Coding
 Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, mono, fltp, 83 kb/s (default)
 Metadata:
 creation_time : 2010-03-20 21:29:11
[yuv4mpegpipe @ 0x21d8180] ERROR: yuv4mpeg can only handle yuv444p, yuv422p, yuv420p, yuv411p and gray8 pixel formats. And using 'strict -1' also yuv444p9, yuv422p9, yuv420p9, yuv444p10, yuv422p10, yuv420p10, yuv444p12, yuv422p12, yuv420p12, yuv444p14, yuv422p14, yuv420p14, yuv444p16, yuv422p16, yuv420p16 and gray16 pixel formats. Use -pix_fmt to select one.
Output #0, yuv4mpegpipe, to 'small_yuv420p12be.y4m':
 Metadata:
 major_brand : mp42
 minor_version : 0
 compatible_brands: mp42isomavc1
 encoder : Lavf56.18.100
 Stream #0:0(und): Video: rawvideo ([12][11]3Y / 0x59330B0C), yuv420p12be, 560x320, q=2-31, 200 kb/s, 7.50 fps, 7.50 tbn, 7.50 tbc (default)
 Metadata:
 creation_time : 2010-03-20 21:29:11
 encoder : Lavc56.19.100 rawvideo
Stream mapping:
 Stream #0:0 -> #0:0 (h264 (native) -> rawvideo (native))
Could not write header for output file #0 (incorrect codec parameters ?): Input/output error




After that, I also tried to edit with an hexadecimal editor (bless) the small_yuv420p.y4m file. I replace
C420mpeg2
byC420
, and the file was accepted by Chrome.
What does the number in420p[number]
correspond to ? It is not explained there.
Is there any way to makeffmpeg
output this kind of header files ?


@SirDarius, thank you again for your help.



The question



(in case you forgot after this text blob)



How can I convert the
small.mp4
into asmall.y4m
file that has the same properties as themobile_qcif_7.5fps.y4m
file ?