<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: using ffmpeg for cutting media files &#8211; and the gotchas involved</title>
	<atom:link href="http://blog.yimingliu.com/2008/10/07/ffmpeg-encoding-gotchas/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.yimingliu.com/2008/10/07/ffmpeg-encoding-gotchas/</link>
	<description>source control for my (useless) knowledge</description>
	<lastBuildDate>Fri, 06 Jan 2012 16:44:41 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
	<item>
		<title>By: Alberto</title>
		<link>http://blog.yimingliu.com/2008/10/07/ffmpeg-encoding-gotchas/comment-page-1/#comment-17433</link>
		<dc:creator>Alberto</dc:creator>
		<pubDate>Sun, 11 Dec 2011 02:06:10 +0000</pubDate>
		<guid isPermaLink="false">https://blog.yimingliu.com/2008/10/07/using-ffmpeg-for-cutting-media-files-and-the-gotchas-involved/#comment-17433</guid>
		<description>Very useful page (except the rants from merciful/othniel, self appointed open-source know-it-alls), many thanks! Saved me lots of time!</description>
		<content:encoded><![CDATA[<p>Very useful page (except the rants from merciful/othniel, self appointed open-source know-it-alls), many thanks! Saved me lots of time!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: yiming</title>
		<link>http://blog.yimingliu.com/2008/10/07/ffmpeg-encoding-gotchas/comment-page-1/#comment-14229</link>
		<dc:creator>yiming</dc:creator>
		<pubDate>Tue, 13 Sep 2011 02:54:25 +0000</pubDate>
		<guid isPermaLink="false">https://blog.yimingliu.com/2008/10/07/using-ffmpeg-for-cutting-media-files-and-the-gotchas-involved/#comment-14229</guid>
		<description>I don&#039;t think you&#039;ve quite understood my points.  It seems that you believe that fundamentally, functionality is orthogonal to system design.  It is not.  No matter how many features you place in a system, it remains unusable until you are able to provide a coherent information architecture to allow users to use them in a reasonable way.  The onus of that is on *you*, the system designer, and not on the user.  The fact that you seem to want to separate what is &quot;function&quot; from &quot;design&quot; simply illustrates how far apart our views are.

The points on a GUI is, again, a lovely attempt at a red herring.  We&#039;re discussing the user expectations of command line interfaces, which still require design consideration, since there are norms and expectations in such interfaces.  Snide insinuations about how users who somehow can&#039;t hack a command-line should go look for a nice safe GUI is unnecessary and unproductive.  I built a horizontally scalable, distributed video transcoding system complete with a RESTful web API while working for Yahoo, under the guidance of an experienced team lead who is now a director at another venture-funded video startup.  Allow me to say that I know exactly what goes on under the hood here.

I&#039;m glad you&#039;re friends with developers of this package.  They do excellent work -- that has *never* been in question.  If I didn&#039;t care or understand the ffmpeg package, I wouldn&#039;t give two cents about their software issues -- I have neither the free time nor the inclination for that.  I enjoy working with ffmpeg, make no mistake.  The developers have simply neglected a key consideration, which is fine given their disinclination or lack of expertise in design issues; I have now raised as a critique for improvement. I don&#039;t think they need you to defend their expertise (nor is such a defense required).

On the other hand, I certainly do not need another dose of &quot;Free Software is awesome; to hell with the user&quot; propaganda, or for that matter, amateur social criticism either.  Fundamentally I believe in user-centered design, and it seems that you do not.

A blog comment thread is not an appropriate place for extended debate (we&#039;ve already hit the thread nesting limit :)).  Please contact me by email (you can find my email over at the bottom of &lt;a href=&quot;http://people.ischool.berkeley.edu/~yliu&quot; rel=&quot;nofollow&quot;&gt;UC Berkeley web page&lt;/a&gt;) if you genuinely want to discuss the various merits of HCI principles as applied to CLI.</description>
		<content:encoded><![CDATA[<p>I don&#8217;t think you&#8217;ve quite understood my points.  It seems that you believe that fundamentally, functionality is orthogonal to system design.  It is not.  No matter how many features you place in a system, it remains unusable until you are able to provide a coherent information architecture to allow users to use them in a reasonable way.  The onus of that is on *you*, the system designer, and not on the user.  The fact that you seem to want to separate what is &#8220;function&#8221; from &#8220;design&#8221; simply illustrates how far apart our views are.</p>
<p>The points on a GUI is, again, a lovely attempt at a red herring.  We&#8217;re discussing the user expectations of command line interfaces, which still require design consideration, since there are norms and expectations in such interfaces.  Snide insinuations about how users who somehow can&#8217;t hack a command-line should go look for a nice safe GUI is unnecessary and unproductive.  I built a horizontally scalable, distributed video transcoding system complete with a RESTful web API while working for Yahoo, under the guidance of an experienced team lead who is now a director at another venture-funded video startup.  Allow me to say that I know exactly what goes on under the hood here.</p>
<p>I&#8217;m glad you&#8217;re friends with developers of this package.  They do excellent work &#8212; that has *never* been in question.  If I didn&#8217;t care or understand the ffmpeg package, I wouldn&#8217;t give two cents about their software issues &#8212; I have neither the free time nor the inclination for that.  I enjoy working with ffmpeg, make no mistake.  The developers have simply neglected a key consideration, which is fine given their disinclination or lack of expertise in design issues; I have now raised as a critique for improvement. I don&#8217;t think they need you to defend their expertise (nor is such a defense required).</p>
<p>On the other hand, I certainly do not need another dose of &#8220;Free Software is awesome; to hell with the user&#8221; propaganda, or for that matter, amateur social criticism either.  Fundamentally I believe in user-centered design, and it seems that you do not.</p>
<p>A blog comment thread is not an appropriate place for extended debate (we&#8217;ve already hit the thread nesting limit <img src='http://blog.yimingliu.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> ).  Please contact me by email (you can find my email over at the bottom of <a href="http://people.ischool.berkeley.edu/~yliu" rel="nofollow">UC Berkeley web page</a>) if you genuinely want to discuss the various merits of HCI principles as applied to CLI.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Othniel</title>
		<link>http://blog.yimingliu.com/2008/10/07/ffmpeg-encoding-gotchas/comment-page-1/#comment-14226</link>
		<dc:creator>Othniel</dc:creator>
		<pubDate>Tue, 13 Sep 2011 02:10:49 +0000</pubDate>
		<guid isPermaLink="false">https://blog.yimingliu.com/2008/10/07/using-ffmpeg-for-cutting-media-files-and-the-gotchas-involved/#comment-14226</guid>
		<description>What you are complaining about is called the specialization of labor.  You know -- the innovation that bought us the industrial revolution, ownership of capital, and the employee/employer relationship.  

I personally want the guy who writes FFmpeg to focus on what he is good at and ignore graphical user interface issues.  Somebody else can work on that in parallel with Fabrice Bellard and friends continuing to make a more functional / flexible CLI tool and handling new containers and data streams.  FFmpeg itself is a super powerful CLI tool as it stands.  No GUI designed for it could ever capture all of its flexibilty at the command-line.  However, being an important piece of software, FFmpeg has had several GUIs made for it addressing various common workflows and usage.  

Maybe you should investigate using one of those.  

I am not surprised that even those with a Computer Science PhD background have to learn a few new tricks when dealing with Audio and Video streams processing.  I know I did.  One user I heard of was piping the output of ffmpeg directly into speexenc.  Ingenious!  Every new area of knowledge requires learning.  Be open to it.  The standard university way is to put such info into a man page (instead of making you read the source code).  Nobody reads the whole man page everytime.  And finding the information you want is a life skill.  However, End Users such as yourself are not the only users of FFmpeg and similar CLI tools.  Scripts use FFmpeg also.  So the CLI has to service the needs of CLI people and those that want to automate the process or those that want to create a GUI for it.  Why spend the time creating the GUI portion of a program that doesn&#039;t work or a software system that nobody uses or wants to use?  

That&#039;s what you are advocating.  Cart before horse.

Which is more important: the quality inside or the outside veneer?  Our society already puts too much emphasis on the glitz.  As I said previously, important software like FFmpeg causes software developers to embed it in scripts which make it easier to use and very important CLI utilities get several Graphical User Interfaces like FFmpeg has.

Maybe you should use the software that Sansa supplies with e2xx players for video processing .avi files into the unit&#039;s proprietary video format.  Its got a nice interface!  No thinking required.  No unexpected surprises.

I agree that a CLI is a user interface.  One where the explanation of behaviors is documented concisely or in a form that you unfortunately can&#039;t speed read.  FFmpeg is not a system.  (Quoting from your response: &quot;intuitively designed system...&quot;)  It is a component -- a part of a system.  If you need a system, maybe you should investigate using an ffmpeg GUI.

The beauty of FFmpeg is that it is simple enough for you to begin using and to be quickly rewarded with fantastic results.  You were hooked by the power of FFmpeg -- as am I.  It is worthy of our discussion.  The unexpected surprise with FFmpeg is how versatile and capable a command line interface can be reusing the same switches multiple times for different purposes.  Truly it is the swiss-army knife of audio/video processing.  Be glad these Linux utilities and libraries are now available on Windows.  And that OSS developers have the freedom to work on what they deem most important.</description>
		<content:encoded><![CDATA[<p>What you are complaining about is called the specialization of labor.  You know &#8212; the innovation that bought us the industrial revolution, ownership of capital, and the employee/employer relationship.  </p>
<p>I personally want the guy who writes FFmpeg to focus on what he is good at and ignore graphical user interface issues.  Somebody else can work on that in parallel with Fabrice Bellard and friends continuing to make a more functional / flexible CLI tool and handling new containers and data streams.  FFmpeg itself is a super powerful CLI tool as it stands.  No GUI designed for it could ever capture all of its flexibilty at the command-line.  However, being an important piece of software, FFmpeg has had several GUIs made for it addressing various common workflows and usage.  </p>
<p>Maybe you should investigate using one of those.  </p>
<p>I am not surprised that even those with a Computer Science PhD background have to learn a few new tricks when dealing with Audio and Video streams processing.  I know I did.  One user I heard of was piping the output of ffmpeg directly into speexenc.  Ingenious!  Every new area of knowledge requires learning.  Be open to it.  The standard university way is to put such info into a man page (instead of making you read the source code).  Nobody reads the whole man page everytime.  And finding the information you want is a life skill.  However, End Users such as yourself are not the only users of FFmpeg and similar CLI tools.  Scripts use FFmpeg also.  So the CLI has to service the needs of CLI people and those that want to automate the process or those that want to create a GUI for it.  Why spend the time creating the GUI portion of a program that doesn&#8217;t work or a software system that nobody uses or wants to use?  </p>
<p>That&#8217;s what you are advocating.  Cart before horse.</p>
<p>Which is more important: the quality inside or the outside veneer?  Our society already puts too much emphasis on the glitz.  As I said previously, important software like FFmpeg causes software developers to embed it in scripts which make it easier to use and very important CLI utilities get several Graphical User Interfaces like FFmpeg has.</p>
<p>Maybe you should use the software that Sansa supplies with e2xx players for video processing .avi files into the unit&#8217;s proprietary video format.  Its got a nice interface!  No thinking required.  No unexpected surprises.</p>
<p>I agree that a CLI is a user interface.  One where the explanation of behaviors is documented concisely or in a form that you unfortunately can&#8217;t speed read.  FFmpeg is not a system.  (Quoting from your response: &#8220;intuitively designed system&#8230;&#8221;)  It is a component &#8212; a part of a system.  If you need a system, maybe you should investigate using an ffmpeg GUI.</p>
<p>The beauty of FFmpeg is that it is simple enough for you to begin using and to be quickly rewarded with fantastic results.  You were hooked by the power of FFmpeg &#8212; as am I.  It is worthy of our discussion.  The unexpected surprise with FFmpeg is how versatile and capable a command line interface can be reusing the same switches multiple times for different purposes.  Truly it is the swiss-army knife of audio/video processing.  Be glad these Linux utilities and libraries are now available on Windows.  And that OSS developers have the freedom to work on what they deem most important.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: yiming</title>
		<link>http://blog.yimingliu.com/2008/10/07/ffmpeg-encoding-gotchas/comment-page-1/#comment-14173</link>
		<dc:creator>yiming</dc:creator>
		<pubDate>Sat, 10 Sep 2011 11:14:20 +0000</pubDate>
		<guid isPermaLink="false">https://blog.yimingliu.com/2008/10/07/using-ffmpeg-for-cutting-media-files-and-the-gotchas-involved/#comment-14173</guid>
		<description>It&#039;s this kind of engineering-centric thinking (as opposed to user-centric or human-centric), so prevalent within our industry, that allows HCI designers to be paid so well.  This kind of thinking misses the point: a user should *not* be forced to do unintuitive things, simply because it makes engineering easy, or because the engineer does not like to pay attention to users.  

Being open source does not excuse bad user interface design.  Actively confusing interfaces -- interfaces that function contrary to user expectations -- creates errors where none needed to exist.  If you check the About page here for my background, you&#039;ll find that my &quot;cred&quot; on software and technology issues to be significant (Berkeley PhD work, startup founder, engineer, etc.).  Nevertheless, I made this error, because my expectations on how a CLI should behave -- drawn from years of experience -- is violated in idiosyncratic and largely needless ways.  Ironically, had I *not* been a regular CLI user, I might not have formed this particular expectation.  Nevertheless, the key target audience of a tool like ffmpeg is precisely an experienced CLI user.

The man page is a red herring.  The need to refer to or post signage is practically *already admitting* that you have made an design error, or at least made some incomprehensible design choices in the eyes of your typical user.  An intuitively designed system does not require warnings, because of the &lt;a href=&quot;http://en.wikipedia.org/wiki/Affordance&quot; rel=&quot;nofollow&quot;&gt;affordances&lt;/a&gt; of such systems naturally guides user into making correct choices or decisions.  I won&#039;t even get into the matter of requiring the reading of an entire document vs simple signage, which at least has the possibility of being effective at educating a user.

I highly recommend Don Norman&#039;s book &lt;a href=&quot;http://www.amazon.com/Design-Everyday-Things-Donald-Norman/dp/0465067107/ref=sr_1_1?s=books&amp;tag=selfs-20&amp;ie=UTF8&amp;qid=1315653059&amp;sr=1-1&quot; rel=&quot;nofollow&quot;&gt;&quot;The Design of Everyday Things&quot;&lt;/a&gt; (and its companion, &lt;a href=&quot;http://www.amazon.com/Emotional-Design-Love-Everyday-Things/dp/0465051367/ref=pd_sim_b_1?tag=selfs-20&quot; rel=&quot;nofollow&quot;&gt;Emotional Design: Why We Love Or Hate Everyday Things&lt;/a&gt;).  This is a book that every would-be software engineer should read before they start taking on any sort of software design or architect role.  Every HCI designer already starts with it as the introductory text, and I think every engineer should have to read this as well.  It explains in an extremely lucid and well-reasoned way why certain designs succeed and others fail.  It certainly changed my views (similar to your own, once) on how human-facing interfaces should be designed, and where the responsibility for user errors lies.

And yes, I will reiterate: even CLIs are user interfaces.</description>
		<content:encoded><![CDATA[<p>It&#8217;s this kind of engineering-centric thinking (as opposed to user-centric or human-centric), so prevalent within our industry, that allows HCI designers to be paid so well.  This kind of thinking misses the point: a user should *not* be forced to do unintuitive things, simply because it makes engineering easy, or because the engineer does not like to pay attention to users.  </p>
<p>Being open source does not excuse bad user interface design.  Actively confusing interfaces &#8212; interfaces that function contrary to user expectations &#8212; creates errors where none needed to exist.  If you check the About page here for my background, you&#8217;ll find that my &#8220;cred&#8221; on software and technology issues to be significant (Berkeley PhD work, startup founder, engineer, etc.).  Nevertheless, I made this error, because my expectations on how a CLI should behave &#8212; drawn from years of experience &#8212; is violated in idiosyncratic and largely needless ways.  Ironically, had I *not* been a regular CLI user, I might not have formed this particular expectation.  Nevertheless, the key target audience of a tool like ffmpeg is precisely an experienced CLI user.</p>
<p>The man page is a red herring.  The need to refer to or post signage is practically *already admitting* that you have made an design error, or at least made some incomprehensible design choices in the eyes of your typical user.  An intuitively designed system does not require warnings, because of the <a href="http://en.wikipedia.org/wiki/Affordance" rel="nofollow">affordances</a> of such systems naturally guides user into making correct choices or decisions.  I won&#8217;t even get into the matter of requiring the reading of an entire document vs simple signage, which at least has the possibility of being effective at educating a user.</p>
<p>I highly recommend Don Norman&#8217;s book <a href="http://www.amazon.com/Design-Everyday-Things-Donald-Norman/dp/0465067107/ref=sr_1_1?s=books&#038;tag=selfs-20&#038;ie=UTF8&#038;qid=1315653059&#038;sr=1-1" rel="nofollow">&#8220;The Design of Everyday Things&#8221;</a> (and its companion, <a href="http://www.amazon.com/Emotional-Design-Love-Everyday-Things/dp/0465051367/ref=pd_sim_b_1?tag=selfs-20" rel="nofollow">Emotional Design: Why We Love Or Hate Everyday Things</a>).  This is a book that every would-be software engineer should read before they start taking on any sort of software design or architect role.  Every HCI designer already starts with it as the introductory text, and I think every engineer should have to read this as well.  It explains in an extremely lucid and well-reasoned way why certain designs succeed and others fail.  It certainly changed my views (similar to your own, once) on how human-facing interfaces should be designed, and where the responsibility for user errors lies.</p>
<p>And yes, I will reiterate: even CLIs are user interfaces.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Othniel</title>
		<link>http://blog.yimingliu.com/2008/10/07/ffmpeg-encoding-gotchas/comment-page-1/#comment-14172</link>
		<dc:creator>Othniel</dc:creator>
		<pubDate>Sat, 10 Sep 2011 10:50:51 +0000</pubDate>
		<guid isPermaLink="false">https://blog.yimingliu.com/2008/10/07/using-ffmpeg-for-cutting-media-files-and-the-gotchas-involved/#comment-14172</guid>
		<description>I disagree with yiming and Krysztof von Murphy about the sanity checks.  If a person doesn&#039;t understand how to use an interface, don&#039;t break the operation of scripts which are able to use the CLI intelligently, so that these 2 guys don&#039;t have to read a manual.  (Maybe yiming and Krysztof are just not man compatible!)  For example, imagine that all commands only took 1 file argument like Windows&#039; right-click menus.  Then a simple operation in Linux like file copying becomes two GUI operations: Cut and Paste.  Why? because you cannot specify both source and destination.  Point: every doorknob is not a simple turn-to-open latch.  Some &quot;Doorknobs&quot; require you to enter a holding area, then select which door you want to exit and wait until you reach the selected floor.  Some people made a career and retired operating a doorknob that other people could not reliably operate.  Its cool to be an elevator operator until you get stuck between floors.  Its cool to transcode music and lectures and video with freedom until you have to learn a little more.

The difference between Propaganda and Education is that Propaganda tells you what to think and Education (and Open Source) teaches you how to think.</description>
		<content:encoded><![CDATA[<p>I disagree with yiming and Krysztof von Murphy about the sanity checks.  If a person doesn&#8217;t understand how to use an interface, don&#8217;t break the operation of scripts which are able to use the CLI intelligently, so that these 2 guys don&#8217;t have to read a manual.  (Maybe yiming and Krysztof are just not man compatible!)  For example, imagine that all commands only took 1 file argument like Windows&#8217; right-click menus.  Then a simple operation in Linux like file copying becomes two GUI operations: Cut and Paste.  Why? because you cannot specify both source and destination.  Point: every doorknob is not a simple turn-to-open latch.  Some &#8220;Doorknobs&#8221; require you to enter a holding area, then select which door you want to exit and wait until you reach the selected floor.  Some people made a career and retired operating a doorknob that other people could not reliably operate.  Its cool to be an elevator operator until you get stuck between floors.  Its cool to transcode music and lectures and video with freedom until you have to learn a little more.</p>
<p>The difference between Propaganda and Education is that Propaganda tells you what to think and Education (and Open Source) teaches you how to think.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: glow</title>
		<link>http://blog.yimingliu.com/2008/10/07/ffmpeg-encoding-gotchas/comment-page-1/#comment-7388</link>
		<dc:creator>glow</dc:creator>
		<pubDate>Tue, 21 Dec 2010 11:41:35 +0000</pubDate>
		<guid isPermaLink="false">https://blog.yimingliu.com/2008/10/07/using-ffmpeg-for-cutting-media-files-and-the-gotchas-involved/#comment-7388</guid>
		<description>Thank you! I was already starting to go mad over the parameters for cutting and imagining all kinds of weird possible bugs there. I wish the order of parameters wouldn&#039;t matter as much as their name (i.e. -itsoffset for input, -otsoffset for output, possibly).
Thanks again!</description>
		<content:encoded><![CDATA[<p>Thank you! I was already starting to go mad over the parameters for cutting and imagining all kinds of weird possible bugs there. I wish the order of parameters wouldn&#8217;t matter as much as their name (i.e. -itsoffset for input, -otsoffset for output, possibly).<br />
Thanks again!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Petar Hristov</title>
		<link>http://blog.yimingliu.com/2008/10/07/ffmpeg-encoding-gotchas/comment-page-1/#comment-4847</link>
		<dc:creator>Petar Hristov</dc:creator>
		<pubDate>Sat, 10 Jul 2010 09:44:05 +0000</pubDate>
		<guid isPermaLink="false">https://blog.yimingliu.com/2008/10/07/using-ffmpeg-for-cutting-media-files-and-the-gotchas-involved/#comment-4847</guid>
		<description>Thanks a lot!
You have helped a lot of people!
If one day I become rich I will express my gratitude in $$$!
Promise is a promise!

In man page of ffmpeg it is specified that parameters concerning the source file -i SOURCE_FILE need to be before it.
But people do not read man pages.
They use google and copy-paste.</description>
		<content:encoded><![CDATA[<p>Thanks a lot!<br />
You have helped a lot of people!<br />
If one day I become rich I will express my gratitude in $$$!<br />
Promise is a promise!</p>
<p>In man page of ffmpeg it is specified that parameters concerning the source file -i SOURCE_FILE need to be before it.<br />
But people do not read man pages.<br />
They use google and copy-paste.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: grateful</title>
		<link>http://blog.yimingliu.com/2008/10/07/ffmpeg-encoding-gotchas/comment-page-1/#comment-4486</link>
		<dc:creator>grateful</dc:creator>
		<pubDate>Tue, 01 Jun 2010 18:00:17 +0000</pubDate>
		<guid isPermaLink="false">https://blog.yimingliu.com/2008/10/07/using-ffmpeg-for-cutting-media-files-and-the-gotchas-involved/#comment-4486</guid>
		<description>I was totally confused by this as well, even after reading the man page.  Thanks so much!</description>
		<content:encoded><![CDATA[<p>I was totally confused by this as well, even after reading the man page.  Thanks so much!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Krysztof von Murphy</title>
		<link>http://blog.yimingliu.com/2008/10/07/ffmpeg-encoding-gotchas/comment-page-1/#comment-2996</link>
		<dc:creator>Krysztof von Murphy</dc:creator>
		<pubDate>Wed, 30 Dec 2009 08:48:54 +0000</pubDate>
		<guid isPermaLink="false">https://blog.yimingliu.com/2008/10/07/using-ffmpeg-for-cutting-media-files-and-the-gotchas-involved/#comment-2996</guid>
		<description>THANK YOU for publishing this little and so precious knowledge!

I&#039;ve lost hours trying to cut the useless parts of a .TS file, and I couldn&#039;t understand why ffmpeg was re-encoding everything (in crappy quality). I could have managed to find the &quot;copy&quot; codecs, but putting -ss on the beginning was beyond my imagination.

I agree with yiming: command line should be as much as possible order-neutral, and sanity checks MUST occur.</description>
		<content:encoded><![CDATA[<p>THANK YOU for publishing this little and so precious knowledge!</p>
<p>I&#8217;ve lost hours trying to cut the useless parts of a .TS file, and I couldn&#8217;t understand why ffmpeg was re-encoding everything (in crappy quality). I could have managed to find the &#8220;copy&#8221; codecs, but putting -ss on the beginning was beyond my imagination.</p>
<p>I agree with yiming: command line should be as much as possible order-neutral, and sanity checks MUST occur.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: yiming</title>
		<link>http://blog.yimingliu.com/2008/10/07/ffmpeg-encoding-gotchas/comment-page-1/#comment-2986</link>
		<dc:creator>yiming</dc:creator>
		<pubDate>Mon, 28 Dec 2009 22:52:59 +0000</pubDate>
		<guid isPermaLink="false">https://blog.yimingliu.com/2008/10/07/using-ffmpeg-for-cutting-media-files-and-the-gotchas-involved/#comment-2986</guid>
		<description>Thanks for the pointer.  I would disagree with your conclusion that a manual is the end-all solution to the issue.  The problem is that this sort of user interface design is unintuitive (yes, even CLIs are user interfaces).  When specifying arguments on a command line, the majority of programs treat it as a hash of options, where order is unimportant.  It would not occur to most users, even seasoned command-line jockeys, that it is the order of arguments that caused strange behavior.

This sort of problem should be detected, and a warning printed to standard error.  In most cases, it makes no sense to accept -t or -ss options for an output file rather than an input file, making detection quite easy for the majority of cases.   It is the responsibility of ffmpeg to do this, because here it is ffmpeg that is behaving out of the norm, not the user.

Imagine if I designed a doorknob -- which looks like an ordinary doorknob -- but requires that you pull/push on the knob to open, rather than turning it.  I would expect that many users would be confused when they first try any door with this knob installed.  If my oddly designed doorknob is used in all major buildings, users may indeed write blog posts about how unintuitive it is.  And assuming that I cannot redesign my doorknob at all, I would post a sign that says &quot;Pull to open&quot;, rather than putting a 10-page operating manual (complete with diagrams) next to every such door, with a guy next to it yelling &quot;Read the F&#039;ing Manual!&quot;  :)</description>
		<content:encoded><![CDATA[<p>Thanks for the pointer.  I would disagree with your conclusion that a manual is the end-all solution to the issue.  The problem is that this sort of user interface design is unintuitive (yes, even CLIs are user interfaces).  When specifying arguments on a command line, the majority of programs treat it as a hash of options, where order is unimportant.  It would not occur to most users, even seasoned command-line jockeys, that it is the order of arguments that caused strange behavior.</p>
<p>This sort of problem should be detected, and a warning printed to standard error.  In most cases, it makes no sense to accept -t or -ss options for an output file rather than an input file, making detection quite easy for the majority of cases.   It is the responsibility of ffmpeg to do this, because here it is ffmpeg that is behaving out of the norm, not the user.</p>
<p>Imagine if I designed a doorknob &#8212; which looks like an ordinary doorknob &#8212; but requires that you pull/push on the knob to open, rather than turning it.  I would expect that many users would be confused when they first try any door with this knob installed.  If my oddly designed doorknob is used in all major buildings, users may indeed write blog posts about how unintuitive it is.  And assuming that I cannot redesign my doorknob at all, I would post a sign that says &#8220;Pull to open&#8221;, rather than putting a 10-page operating manual (complete with diagrams) next to every such door, with a guy next to it yelling &#8220;Read the F&#8217;ing Manual!&#8221;  <img src='http://blog.yimingliu.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Merciful</title>
		<link>http://blog.yimingliu.com/2008/10/07/ffmpeg-encoding-gotchas/comment-page-1/#comment-2982</link>
		<dc:creator>Merciful</dc:creator>
		<pubDate>Mon, 28 Dec 2009 10:35:57 +0000</pubDate>
		<guid isPermaLink="false">https://blog.yimingliu.com/2008/10/07/using-ffmpeg-for-cutting-media-files-and-the-gotchas-involved/#comment-2982</guid>
		<description>Read the manual! It clearly states that options, like the above one, apply to the first file following the options. So in &quot;ffmpeg -i bar.mp3 -ss 00:00:10.00 -t 25 -acodec mp3 bar-new.mp3&quot; the -ss -t -acodec options all apply to the file &quot;bar-new.mp3&quot;.

In &quot;ffmpeg -ss 00:00:30.00 -t 25 -i bar.mp3 -acodec copy bar-new.mp3&quot; the -ss and -t option apply to bar.mp3 and the -acodec applies to &quot;bar-new.mp3&quot;.

Look at this one (capture from webcam) to dvd mpeg:&quot;ffmpeg -f mjpeg -s 464x480 -vcodec mjpeg -r 14 -i /dev/video0 -target pal-dvd ~/stream.mpeg&quot;</description>
		<content:encoded><![CDATA[<p>Read the manual! It clearly states that options, like the above one, apply to the first file following the options. So in &#8220;ffmpeg -i bar.mp3 -ss 00:00:10.00 -t 25 -acodec mp3 bar-new.mp3&#8243; the -ss -t -acodec options all apply to the file &#8220;bar-new.mp3&#8243;.</p>
<p>In &#8220;ffmpeg -ss 00:00:30.00 -t 25 -i bar.mp3 -acodec copy bar-new.mp3&#8243; the -ss and -t option apply to bar.mp3 and the -acodec applies to &#8220;bar-new.mp3&#8243;.</p>
<p>Look at this one (capture from webcam) to dvd mpeg:&#8221;ffmpeg -f mjpeg -s 464&#215;480 -vcodec mjpeg -r 14 -i /dev/video0 -target pal-dvd ~/stream.mpeg&#8221;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: chopping a few seconds off the front of a video &#171; Vitullo Blog</title>
		<link>http://blog.yimingliu.com/2008/10/07/ffmpeg-encoding-gotchas/comment-page-1/#comment-1024</link>
		<dc:creator>chopping a few seconds off the front of a video &#171; Vitullo Blog</dc:creator>
		<pubDate>Sun, 09 Aug 2009 20:21:52 +0000</pubDate>
		<guid isPermaLink="false">https://blog.yimingliu.com/2008/10/07/using-ffmpeg-for-cutting-media-files-and-the-gotchas-involved/#comment-1024</guid>
		<description>[...] if the -isync is needed, but make sure you copy both codecs or it will create suckage. Thanks to this for demonstrating the proper command line [...]</description>
		<content:encoded><![CDATA[<p>[...] if the -isync is needed, but make sure you copy both codecs or it will create suckage. Thanks to this for demonstrating the proper command line [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Troy</title>
		<link>http://blog.yimingliu.com/2008/10/07/ffmpeg-encoding-gotchas/comment-page-1/#comment-1023</link>
		<dc:creator>Troy</dc:creator>
		<pubDate>Sun, 09 Aug 2009 20:05:38 +0000</pubDate>
		<guid isPermaLink="false">https://blog.yimingliu.com/2008/10/07/using-ffmpeg-for-cutting-media-files-and-the-gotchas-involved/#comment-1023</guid>
		<description>Thanks for taking the time to delve into this. Glad I found this after an hour of pounding my head against the keyboard.</description>
		<content:encoded><![CDATA[<p>Thanks for taking the time to delve into this. Glad I found this after an hour of pounding my head against the keyboard.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Daily Digest for 2009-03-26 &#124; Pedro Trindade</title>
		<link>http://blog.yimingliu.com/2008/10/07/ffmpeg-encoding-gotchas/comment-page-1/#comment-391</link>
		<dc:creator>Daily Digest for 2009-03-26 &#124; Pedro Trindade</dc:creator>
		<pubDate>Fri, 27 Mar 2009 07:02:10 +0000</pubDate>
		<guid isPermaLink="false">https://blog.yimingliu.com/2008/10/07/using-ffmpeg-for-cutting-media-files-and-the-gotchas-involved/#comment-391</guid>
		<description>[...] using ffmpeg for cutting media files - and the gotchas involved &#124; The Sarth Repository [...]</description>
		<content:encoded><![CDATA[<p>[...] using ffmpeg for cutting media files &#8211; and the gotchas involved | The Sarth Repository [...]</p>
]]></content:encoded>
	</item>
</channel>
</rss>

