Eu sou um dos desenvolvedores do Format Junkie, então eu meio que sei como o avconv funciona, e garanto que ele envia todos os dados importantes para o stderr. Então, você precisa grep de stderr. Na verdade, você redireciona todo o stderr para stdout e depois grep:
Por exemplo:
avconv -i 111.avi 2>&1 | grep Duration
processa corretamente:
Duration: 00:01:05.02, start: 0.000000, bitrate: 2910 kb/s
A razão pela qual o grep funciona apenas em alguma saída do avconv é que esta saída específica está sendo dada ao stdout, não ao stderr, e assim é canalizada com sucesso para o grep.
Normalmente o stderr é usado para gerar mensagens de erro e stdout para gerar mensagens informativas normais.
Não é ruim que stderr e stdout existam, porque você pode filtrar a saída da maneira que desejar. Por exemplo, considere o seguinte:
command > log.txt 2> error_log.txt
Isto irá mostrar toda a saída normal (stdout) para log.txt e todos os erros (stderr) para error_log.txt
Eu não sei porque o avconv usa especificamente o stderr para exibir suas mensagens.