[FFmpeg-user] HLS one liner from /dev/videoX

Tom Evans tevans.uk at googlemail.com
Thu Apr 30 12:22:23 CEST 2015


On Thu, Apr 30, 2015 at 11:06 AM, Kai Hendry <hendry at webconverger.com> wrote:
> On 30 April 2015 at 17:21, Tom Evans <tevans.uk at googlemail.com> wrote:
>> What is missing (and the only thing that is really required) is the
>> full command line that you used to invoke ffmpeg, and the console
>> output that invocation of ffmpeg produced, presented as inline in the
>> email. No attachments, no externally linked files that might go away
>
> Wow, so you've not seen a -report like this?
> http://s.natalian.org/2015-04-30/ffmpeg-20150430-102645.log

I'm not opening random links, so no. See this page for what is
expected if you require support:

https://www.ffmpeg.org/bugreports.html

When writing your bug report, please include (uncompressed):

What you were trying to accomplish (e.g., "I am trying to transcode
from this format to that format...")
The problem you encountered (e.g., "ffmpeg crashed, see the gdb and
valgrind output below" or "The output video was all green")
The exact command line you were using (e.g., "ffmpeg -i input.mov -an
-vcodec foo output.avi")
The full, uncut console output provided by ffmpeg -v 9 -loglevel 99 -i
followed by the name of your input file (copy/pasted from the console,
including the banner that indicates version and configuration
options), paste ffplay output only if your problem is not reproducible
with ffmpeg.
Sufficient information, including any required input files, to
reproduce the bug and confirm a potential fix.

It is not onerous..

>
>>>> You may have overseen one important message in your logs:
>>>>> No pixel format specified, yuv422p for H.264 encoding chosen.
>>>>> Use -pix_fmt yuv420p for compatibility with outdated media players.
>>> I doubt IOS safari is an outdated player.
>> You know you don't have to doubt, there is this thing called google
>> that can answer questions like "Does IOS support h264 in 4:2:2
>> chrome".
>
> I have no idea what 4:2:2 is supposed to mean.
>
> But after some testing I must concede that:
>
> ffmpeg -f v4l2 -i /dev/video0 -pix_fmt yuv420p playlist.m3u8
>
> Makes it work. Why isn't -pix_fmt yuv420p simply the default ?! This
> is what's needed to make HLS work in the devices that actually play
> it.

You didn't specify what format you wanted to read from /dev/video0, so
you got the highest chroma sampling possible. You didn't specify what
sampling you wanted the output in, so ffmpeg preserved the sampling of
the source, rather than resample without being told to do so. ffmpeg
respects your choices, but shows the warning that you're generating
something that won't play on most players.

>
>> I'll let you know - it does not. Almost no hardware accelerated
>> playback supports 4:2:2 chroma, certainly no iphone supports anything
>> other than 4:2:0. See this (extensive) stackoverflow answer:
>>> http://stackoverflow.com/questions/26626689/ffmpeg-generated-videos-crashes-on-ios
>> 4:2:2 chroma is used mainly in high end video capture devices and formats.
>
> Interesting. Thanks.
>
> Though I still wish ffmpeg has sane defaults. Hours and hours later,
> here I am reading about Chroma subsampling.

Video encoding is hard and requires knowledge, there is no getting around that.

Cheers

Tom


More information about the ffmpeg-user mailing list